Wie Strings Zahlen auf ganze Zahlen in einer Liste konvertieren?
Frage
Ich habe eine Liste sagen:
['batting average', '306', 'ERA', '1710']
Wie kann ich konvertieren die beabsichtigten Zahlen ohne die Saiten zu berühren?
Vielen Dank für die Hilfe.
Lösung
changed_list = [int(f) if f.isdigit() else f for f in original_list]
Andere Tipps
Die Daten sieht aus wie Sie, in denen würde wissen, positioniert die Zahlen sein sollen. In diesem Fall ist es wahrscheinlich besser, die Daten explizit in diesen Positionen zu konvertieren, anstatt nur etwas Umwandlung, die wie eine Zahl aussieht:
ls = ['batting average', '306', 'ERA', '1710']
ls[1] = int(ls[1])
ls[3] = int(ls[3])
Versuchen Sie folgendes:
def convert( someList ):
for item in someList:
try:
yield int(item)
except ValueError:
yield item
newList= list( convert( oldList ) )
a= ['batting average', '306', 'ERA', '1710.5']
[f if sum([c.isalpha() for c in f]) else float(f) for f in a ]
Wenn Sie Ihre Liste enthält float, string und int (wie von @ d.putto im Kommentar darauf zu)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow