Seltsames Verhalten bei der Partitionierungsliste von Tupeln in verschiedene Listen [Duplikat]
Posted: 03 Jun 2025, 19:27
Ich habe heute ein wirklich unerwartetes Verhalten mit Python 3.12.4 gefunden. Ich versuche, eine Liste von Tupeln in 2 verschiedene Listen in einer Liste der Listen zu sortieren, die auf der ersten Anzahl des Tupels basieren. Stattdessen erhält jede Liste in der Liste der Listen jedes Tupel. Aber ich würde es vorziehen zu verstehen, warum das, was ich hier tue, nicht funktioniert.
Kann jemand erklären, warum dies geschieht?
Code: Select all
data = [(0,1),(0,2),(1,1),(1,2),(1,3)]
arr = [[]]*2
for x in data:
if x[0] == 0:
arr[0].append(x)
elif x[0] == 1:
arr[1].append(x)
print(arr)
>>> [[(0, 1), (0, 2), (1, 1), (1, 2), (1, 3)], [(0, 1), (0, 2), (1, 1), (1, 2), (1, 3)]]
< /code>
Daher ist jede Liste in der Liste der Listen gleich und erhält jedes Tupel. Meine Erwartung ist, dass der Code zurückgeben sollte: < /p>
>>> [[(0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)]]