2017-07-28 4 views
-2

Ich habe eine Liste wie diese:Konvertieren einer Liste von Strings in eine einzige ganze Zahl

["1", "8", "9", "5", "6"] 

und wollen es in eine einzige ganze Zahl konvertieren. So ist die gewünschte Ausgabe: 18956

Gibt es eine elegante Methode, dies zu tun?

Der einzige Weg, der mir in den Sinn kommt, besteht darin, die Liste durchzugehen und die Ziffer mit der benötigten Zehnerpotenz zu multiplizieren und alles zu addieren. Aber ich bin mir sicher, dass es eine viel bessere Methode gibt, oder? Danke für Ihre Hilfe.

+3

'int ('' join ([ "1", "8", "9", "5" ist, "6"])) ' –

+0

Vielen Dank für Ihre schnelle Hilfe. Es tut mir leid, dass ich diese Lösung nicht alleine bekommen konnte ... – Cyaena

Antwort

5

Das tut, was Sie wollen int:

Es schließt sich jede Ziffer in einer einzelnen Zeichenfolge '' mit (ein leerer String) als Trennzeichen, wodurch man "18956".

Er wandelt dann die Zeichenfolge in eine ganze Zahl mit dem int() Werk Funktion:

int(''.join(["1", "8", "9", "5", "6"])) 
2
int(''.join(["1", "8", "9", "5", "6"])) 

Es ist wirklich einfach, aber ich werde es erklären:

Zuerst join jedes Element einer Liste nimmt und eine Zeichenfolge erstellen mit allen Elementen „verbunden“ durch einen Separator char; Da wir keinen Separator benötigen, setzen wir ''.

Zweitens nimmt sie die Ergebnis-String "18956" und Guss

0

Versuchen

>>> a = ["1", "8", "9", "5", "6"] 
>>> num = "".join(a) 
>>> num 
'18956' 
>>> number = int(num) 
>>> number 
18956 
1

Ihre Liste:

l = ["1", "8", "9", "5", "6"] 

Methode 1:

Methode:

digit = lambda nums: int(''.join(i for i in nums)) 
print(digit(l)) 

Beide Ausgänge sind gleich:.

18956 
18956 
+0

Warum würden Sie die 'str'-Funktion auf den Zahlen aufrufen, wenn sie bereits Strings sind? – JohanL

+0

Wahr. Bearbeitet @JohanL – Inconnu

Verwandte Themen