2010-03-11 4 views

Antwort

17

Python 2.x:

map(int, ["1", "2", "3"]) 

Python 3.x (in 3.x, kehrt map einen Iterator, keine Liste wie in 2.x):

list(map(int, ["1", "2", "3"])) 

map Dokumentation : 2.6, 3.1

+1

Ich habe den Eindruck, dass 'map' im Allgemeinen nicht gemocht wird. Es wurde sogar fast aus Python 3 entfernt. – pafcu

17
[int(i) for i in str_list] 
+0

Das '' 'am Ende ist falsch, aber sonst +1 –

+0

+1 Ich mag wirklich' map', aber Generatoren sind viel besser lesbar. –

4

Sie auch Liste Kumul nutzen könnten ENSIONS:

new = [int(i) for i in old] 

Oder die map() eingebaute Funktion:

new = map(int, old) 

Oder die itertools.imap()-Funktion, die eine Beschleunigung in einigen Fällen aber in diesem Fall liefert spuckt nur einen Iterator aus, die Sie benötigen in eine Liste konvertieren (so wird es wahrscheinlich die gleiche Zeit dauern):

import itertools as it 
new = list(it.imap(int, old)) 
2

Wenn Ihre Zeichenfolgen nicht nur Zahlen sind (dh. Sie können verwenden:

0

Wenn es Array ist und hat numpy installiert. Wir können auch den folgenden Code verwenden.

import numpy as np 

np.array(['1', '2', '3'],dtype=int)