Ich würde gerne etwas wie das hier tun
def foo(x,dtype=long):
return magic_function_changing_listtype_to_dtype(x)
also eine Liste voll von str um eine vollständige Liste von int
einen einfachen Weg, es zu tun für verschachtelte Listen, d.h. ändern Sie den Typ [['1'],['2']] -> int
- Wollen Sie mutieren Sie die Liste oder einen neuen bekommen?
Python 2:
...
In Python 3, map() liefert ein map-Objekt, so dass Sie brauchen, um Sie zu konvertieren, um eine Liste:
...
map(lambda sl: map(int, sl), [['1'],['2']]) => [[1], [2]]
.map(foo,[['1'],['2']])
def temp(s1): return map(int, s1)
foo(temp)
. docs.python.org/reference/expressions.html#lambda bietet eine kurze Erklärung, und gooling "python lambda" wird zur langwierigen lieben.Hier ist eine ziemlich einfache rekursive Funktion zur Umwandlung von verschachtelten Listen beliebiger Tiefe:
Liste Verstehens sollte es tun:
Verschachtelt:
Nur als ein Kommentar zu den Antworten hier, die verwenden
map
. In Python 3 würde dies nicht funktionieren - so etwas wiemap(int, ['1','2','3'])
wird nicht zurück[1,2,3]
sondern ein map Objekt. Um die tatsächliche Liste Objekt muss manlist(map(int, ['1','2','3']))
funktioniert für beliebig tief verschachtelte Listen: