Liste von Listen auffüllen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ameinsenpeter
User
Beiträge: 12
Registriert: Freitag 2. Oktober 2020, 09:32

Hallo Community, bin gerade auf etwas gestossen und etwa ratlos.
Ich möchte eine Liste von leeren Listen mit Werten auffüllen. Das klappt aber leider nicht wie ich möchte.
Was mich dabei verwundert, ist dass es mit einer Liste von Listen (die schon mind. einen Eintrag hat) funktioniert.
Ich habe schon mehrere alternativen Versucht, doch das Ergebnis ist immer das gleiche.
Mein Code sieht, vereinfacht, wie folgt aus:

Code: Alles auswählen

volleliste = [[0],[0],[0]]
leereliste = list([list()]*3)
i=0
for vl,ll in zip(volleliste,leereliste):
    vl.append(i)
    ll.append(i)
    i+=1
print(volleliste)
print(leereliste) 
Der Output sieht dann wie folgt aus:
leereliste -> [[0,0],[0,1],[0,2]]
volleliste -> [[0,1,2],[0,1,2],[0,1,2]]

Wieso wird leereliste also nicht so gefüllt wie volleliste, sodass ich:
volleliste -> [[0],[1],[2]]
erhalte?
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast die selbe Liste dreimal in der äußeren Liste.
Das äquivalent wäre ja

Code: Alles auswählen

leereliste = [[], [], []]
Wenn möglich, erzeugt man Listen dynamisch. Dann hat man keine solchen Probleme.
Antworten