Seltsames Verhalten bei der Partitionierungsliste von Tupeln in verschiedene Listen [Duplikat]Python

Python-Programme
Anonymous
 Seltsames Verhalten bei der Partitionierungsliste von Tupeln in verschiedene Listen [Duplikat]

Post by Anonymous »

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.

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)]]
Kann jemand erklären, warum dies geschieht?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post