Python: entfernen mehrerer Zeichen in der Liste von string
Solche Liste:
x = ['+5556', '-1539', '-99','+1500']
Wie kann ich Sie entfernen + und - in der schönen Art und Weise?
Funktioniert es, aber ich bin auf der Suche nach mehr pythonic way.
x = ['+5556', '-1539', '-99', '+1500']
n = 0
for i in x:
x[n] = i.replace('-','')
n += 1
n = 0
for i in x:
x[n] = i.replace('+','')
n += 1
print x
Bearbeiten
+
und -
sind nicht immer in führender position; Sie kann überall sein.
InformationsquelleAutor user1768615 | 2013-01-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
str.strip()
oder vorzugsweisestr.lstrip()
:mit
list comprehension
:mit
map()
:Edit:
Verwenden Sie die
str.translate()
basiert Lösung von @Duncan wenn Sie schon+
und-
zwischen die zahlen als gut.translate
Lösung von @Duncan in dem Fall, wo es + zwischen den zahlen.Seine Lösung war nicht gebucht, wenn ich bearbeitet meine Antwort, also a +1 jetzt.
Ja, ich dachte mir, dass die auf der Grundlage der Zeitstempel. Ich dachte nur, da eine neuere (und bessere IMHO) Antwort gab, Sie sollten darauf aufmerksam gemacht werden.
InformationsquelleAutor Ashwini Chaudhary
Verwenden
string.translate()
oder für Python 3.xstr.translate
:Python-2.x:
Python-2.x unicode:
Python 3.x-version:
Dies ist eine schöne Methode. Wusste nicht, abt. +1
InformationsquelleAutor Duncan
InformationsquelleAutor Rakesh
string.translate()
funktioniert nur auf byte-string-Objekte, die nicht in unicode. Ich würdere.sub
:value.translate()
auf Python 2, wennvalue
ist ein unicode-Objekt, aber du musst in einer anderen übersetzung ansehen. Ich aktualisiert meine Antwort zu gehören diesem Fall.InformationsquelleAutor jfd
InformationsquelleAutor G Locarso