250 votes

Pourquoi ce code d'initialisation d'une liste de listes lie-t-il apparemment les listes entre elles ?

J'ai l'intention d'initialiser une liste de liste avec une longueur de n.

x = [[]] * n

Cependant, cela relie en quelque sorte les listes entre elles.

>>> x = [[]] * 3
>>> x[1].append(0)
>>> x
[[0], [0], [0]]

Je m'attends à avoir quelque chose comme :

[[], [0], []]

Des idées ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X