2012-04-27 19 views
12

Wie konvertiere ich eine durch Leerzeichen getrennte Ganzzahleingabe in eine Liste von ganzen Zahlen?Konvertieren der Liste der Zeichenfolge in die Liste der Ganzzahl

Beispiel Eingabe:

list1 = list(input("Enter the unfriendly numbers: ")) 

Beispiel Umwandlung:

['1', '2', '3', '4', '5'] to [1, 2, 3, 4, 5] 
+0

Mögliche Duplikat [alle Strings in einer Liste Konvertieren in int] (http://stackoverflow.com/questions/7368789/convert-all-strings-in-a-list-to-int) –

Antwort

31

map() ist dein Freund, gilt es, die als erstes Argument gegebene Funktion auf alle Elemente in der Liste.

map(int, yourlist) 

da es jedes iterable abbildet, können Sie auch tun:

map(int, input("Enter the unfriendly numbers: ")) 

, die (in python3.x) Karte Objekt zurückgibt, die in eine Liste umgewandelt werden können. Ich nehme an, Sie sind auf Python3, seit Sie input, nicht raw_input verwendet haben.

+1

+ 1 aber meintest du 'map (int, yourlist)'? –

+0

natürlich schon bearbeitet. – ch3ka

+0

meinst du 'map (int, input(). Split())' oder konvertiert py3k Leerzeichen-getrennte Eingaben automatisch in eine Liste? – quodlibetor

1

können Sie versuchen:

x = [int(n) for n in x] 
+2

Dies funktioniert nicht. 'int' ist keine Methode für Strings. –

+0

Tut mir leid, ich habe es bearbeitet ... Das ist eigentlich, was ich meinte :) – Silviu

+0

Es ist nicht falsch, aber ich würde 'x' normalerweise nicht so verwenden. –

14

Eine Möglichkeit ist Listenkomprehensionen zu verwenden:

intlist = [int(x) for x in stringlist] 
+0

+1, '[int (x) für x in Eingabe(). Split()]' um den Spezifikationen von OP zu entsprechen. – georg

-2

Einfach nur neugierig über die Art und Weise du hast '1', '2', '3', ' 4 'statt 1, 2, 3, 4. Wie auch immer.

>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: 1, 2, 3, 4 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: [1, 2, 3, 4] 
>>> list1 
[1, 2, 3, 4] 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: '1234' 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: '1', '2', '3', '4' 
>>> list1 
['1', '2', '3', '4'] 

Okay, einige Code

>>> list1 = input("Enter the unfriendly numbers: ") 
Enter the unfriendly numbers: map(int, ['1', '2', '3', '4']) 
>>> list1 
[1, 2, 3, 4] 
3

dies funktioniert:

nums = [int(x) for x in intstringlist] 
0
l=['1','2','3','4','5'] 

for i in range(0,len(l)): 
    l[i]=int(l[i]) 
+0

Ihr Einzug ist gebrochen. –

1

sagen, es gibt eine Liste von Strings namens List_Of_Strings und Ausgabeliste von ganzen Zahlen genannt list_of_int. Karte Funktion ist eine integrierte Python-Funktion, die für diese Operation verwendet werden kann.

'''Python 2.7''' 
list_of_strings = ['11','12','13'] 
list_of_int = map(int,list_of_strings) 
print list_of_int 
Verwandte Themen