Ich habe mehrere alphanumerische Zeichenfolgen wie diese
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
Die gewünschte Ausgabe zum Entfernen von nachgestellten Nullen wäre:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
Die gewünschte Ausgabe für führende nachfolgende Nullen wäre:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
Die Wunschausgabe zum Entfernen sowohl führender als auch nachfolgender Nullen wäre:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Im Moment mache ich es folgendermaßen, bitte schlagen Sie einen besseren Weg vor, wenn es einen gibt:
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', \
'000alphanumeric']
trailingremoved = []
leadingremoved = []
bothremoved = []
# Remove trailing
for i in listOfNum:
while i[-1] == "0":
i = i[:-1]
trailingremoved.append(i)
# Remove leading
for i in listOfNum:
while i[0] == "0":
i = i[1:]
leadingremoved.append(i)
# Remove both
for i in listOfNum:
while i[0] == "0":
i = i[1:]
while i[-1] == "0":
i = i[:-1]
bothremoved.append(i)
s = '0'
?s.strip("0") or "0"
: Wenn sich Ihre Zeichenfolge in eine leere Zeichenfolge verwandelt, wird sie alsFalse
durch oder ausgewertet und durch die gewünschte Zeichenfolge ersetzt"0"
Entfernen Sie die führende + nachfolgende '0':
Entfernen Sie die führende '0':
Entfernen Sie die nachfolgende '0':
quelle
Sie können dies einfach mit einem Bool tun:
quelle
alphanumeric0000
dem angeforderten OP.Hast du es mit strip () versucht :
quelle
str.strip
ist der beste Ansatz für diese Situation, abermore_itertools.strip
auch eine allgemeine Lösung, bei der sowohl führende als auch nachfolgende Elemente von einem iterierbaren Element entfernt werden:Code
Einzelheiten
Beachten Sie, dass wir hier sowohl führende als auch nachfolgende entfernen
"0"
s unter anderen Elementen entfernen, die ein Prädikat erfüllen. Dieses Tool ist nicht auf Zeichenfolgen beschränkt.Weitere Beispiele für finden Sie in den Dokumenten
more_itertools.strip
: beide Enden abstreifenmore_itertools.lstrip
: Das linke Ende abstreifenmore_itertools.rstrip
: Das rechte Ende abstreifenmore_itertools
ist eine Drittanbieter-Bibliothek, die über installiert werden kann> pip install more_itertools
.quelle
Angenommen, Sie haben andere Datentypen (und nicht nur Zeichenfolgen) in Ihrer Liste, versuchen Sie dies. Dadurch werden nachfolgende und führende Nullen aus Zeichenfolgen entfernt und andere Datentypen bleiben unberührt. Dies behandelt auch den Sonderfall s = '0'
z.B
quelle