integer zu liste in python?
hallo, ich würde in python gerne zahlen zu listen hinzufügen, ich hab das problem schon öfter gehabt aber hab nicht rausfinden können, wie.
wenn ich einfach die zahl hinzufüge, wer hätte es gedacht, lässt python es nicht zu
wenn ich str(zahl) hinzufüge, werden einzelne ziffern hinzugefügt
>>> liste = []
>>> zahl = 12345
>>> liste += zahl
TypeError: 'int' object is not iterable
>>> liste += str(zahl)
>>> print(liste)
['1', '2', '3', '4', '5']
Hast mal nach append() geschaut?
habs dann auch mitgekriegt 😂🥲
3 Antworten
Der „+“-Operator dient dazu eine Liste mit einer anderen Liste zu vereinigen (hintereinanderzufügen). Bzw. kann man statt einer zweiten Liste auch einen String oder ein anderes iterables Objekt verwenden, wobei der String dann wie eine Liste der einzelnen Zeichen behandelt wird.
Im konkreten Fall gibt die liste + zahl einen Fehler, da zahl keine Liste ist, dort aber eine Liste (oder ein anderes iterables Objekt) erwartet wird. Wenn du hingegen str(zahl) = "12345" verwendest wird bei liste + str(zahl) der String "12345" wie eine Liste ['1', '2', '3', '4', '5'] behandelt. Daher geht das, auch wenn es nicht das macht, was du möchtest.
===========
1. Lösungsmöglichkeit:
Verwende die list.append()-Methode statt dem +-Operator. Beispiel:
liste = []
zahl = 12345
liste.append(zahl)
print(liste)
2. Lösungsmöglichkeit:
Packe die Zahl in eine Liste, und füge dann die Listen mit dem +-Operator zusammen. Beispiel:
liste = []
zahl = 12345
liste += [zahl]
print(liste)
a = []
b = 123
c = [6,7,8]
a.append(b)
print(a)
a += c
print(a)
Du addierst mit liste+=zahl eine List mit einem Integer.
Genauso kann man Sekunden nicht mit Metern addieren.
Ein String ist iterierbar und wird so an die Liste angefügt. Diese besondere Funktion steckt hinter dem "+=". Es wird versucht das Objekt das du übergibst (in dem Fall ein String) irgendwie an die Liste anzuhängen.
liste+=[zahl]
liste.append(zahl)
str() erzeugt einen String