2016-07-15 14 views
-1

I, wie oben eine Liste haben:Wie String in ganzen Zahlen in Python konvertieren sickit erlern

probs= ['2','3','5','6'] 

und ich will, dass diese Zeichenfolge in eine numerische Werte wie das folgende Ergebnis konvertieren:

resultat=[2, 3, 4, 5, 6] 

ich habe versucht, einige Lösungen auf diesen Link erscheint: How to convert strings into integers in Python? wie diesem:

new_list = list(list(int(a) for a in b) for b in probs if a.isdigit()) 

aber es hat nicht funktioniert, jemand kann mir helfen, diese Funktion auf meine Datenstruktur anzupassen, ich werde wirklich dankbar sein.

+0

'resultat = [int (Artikel) für Artikel in probs]'? – mgilson

+0

Nur ein Problem mit der Syntax. Sie erstellen eine Liste mit Listen. Benutze stattdessen: 'new_list = list (int (a) für ein in probs wenn a.isdigit())' – user1952500

Antwort

0
>>> probs= ['2','3','5','6'] 
>>> probs= map(int, probs) 
>>> probs 
[2, 3, 5, 6] 

oder (wie kommentiert):

>>> probs= ['2','3','5','6'] 
>>> probs = [int(e) for e in probs] 
>>> probs 
[2, 3, 5, 6] 
>>> 
+0

Danke @Billal für die Antwort. aber ich erhalte den folgenden Fehler: ValueError: ungültiges Literal für int() mit Basis 10: '0.00390625' –

+1

es muss int() auf float() ändern und es funktioniert wirklich gut. Ich schätze es –

3

Verwenden Sie int(), und listen Sie das Verständnis auf, indem Sie die Liste iterieren und die Zeichenfolgenwerte in Ganzzahlen konvertieren.

>>> probs= ['2','3','5','6'] 
>>> num_probs = [int(x) for x in probs if x.isdigit()] 
>>> num_probs 
[2, 3, 5, 6] 
2

, wenn Ihre Liste wie oben ist, brauchen Sie nicht eine Zahl ist, wenn der Wert zu überprüfen. so etwas wie

probs = ["3","4","4"]; 
resultat = []; 

for x in probs: 
    resultat.append(int(x)) 

print resultat 

funktionieren würde

+0

Vielen Dank @ Idco0 für die Antwort. aber ich erhalte den folgenden Fehler: Datei "stdin", lin 2 resultat.append (int (x)) IdentationError: erwartet einen eingerückten Block –