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.

War es hilfreich?

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
scroll top