Entfernen Sie das erste Zeichen einer Zeichenfolge


165

Ich möchte das erste Zeichen einer Zeichenfolge entfernen.

Zum Beispiel beginnt meine Zeichenfolge mit a :und ich möchte nur diese entfernen. Es gibt mehrere Vorkommen :in der Zeichenfolge, die nicht entfernt werden sollten.

Ich schreibe meinen Code in Python.

Antworten:


297

Python 2.x.

s = ":dfa:sif:e"
print s[1:]

Python 3.x.

s = ":dfa:sif:e"
print(s[1:])

beide Drucke

dfa:sif:e

13
Wenn dies die akzeptierte Antwort ist, sollte die Frage lauten: "Wie entferne ich das erste Zeichen einer Zeichenfolge?".
Spaceghost

1
@Spaceghost: Das OP gibt an "Speziell möchte ich das erste Zeichen entfernen."
Sven Marnach

3
Sie haben Recht, ich habe nur auf den Unterschied zwischen dem Titel und dem Hauptteil der Frage geantwortet. Im Nachhinein hätte ich die Zeit damit verbringen sollen, Kaffee zu trinken. :-)
Spaceghost

35

Ihr Problem scheint unklar. Sie sagen, Sie möchten "ein Zeichen von einer bestimmten Position" entfernen, und dann sagen Sie, Sie möchten ein bestimmtes Zeichen entfernen.

Wenn Sie nur das erste Zeichen entfernen müssen, würden Sie Folgendes tun:

s = ":dfa:sif:e"
fixed = s[1:]

Wenn Sie ein Zeichen an einer bestimmten Position entfernen möchten, gehen Sie wie folgt vor:

s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]

Wenn Sie ein bestimmtes Zeichen entfernen müssen, sagen Sie ':', wenn es zum ersten Mal in einer Zeichenfolge vorkommt, würden Sie Folgendes tun:

s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))

6
Das letzte Beispiel könnte einfacher gemacht werden mit s.replace(":", "", 1)-
Sven Marnach

25

Abhängig von der Struktur der Zeichenfolge können Sie Folgendes verwenden lstrip:

str = str.lstrip(':')

Dies würde jedoch alle Doppelpunkte am Anfang entfernen, dh wenn Sie dies getan haben ::foo, wäre das Ergebnis foo. Diese Funktion ist jedoch hilfreich, wenn Sie auch Zeichenfolgen haben, die nicht mit einem Doppelpunkt beginnen und dann das erste Zeichen nicht entfernen möchten.


2

Zeichen löschen:

def del_char(string, indexes):

    'deletes all the indexes from the string and returns the new one'

    return ''.join((char for idx, char in enumerate(string) if idx not in indexes))

Es löscht alle Zeichen, die in Indizes enthalten sind. Sie können es in Ihrem Fall mit verwendendel_char(your_string, [0])

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.