Je veux copier une liste 2D, de sorte que si je modifie une liste, l'autre ne soit pas modifiée.
Pour une liste unidimensionnelle, je fais juste ceci:
a = [1, 2]
b = a[:]
Et maintenant, si je modifie b
, a
n'est pas modifié.
Mais cela ne fonctionne pas pour une liste à deux dimensions:
a = [[1, 2],[3, 4]]
b = a[:]
Si je modifie b
, a
est également modifié.
Comment puis-je réparer ça?
Pour une solution plus générale qui fonctionne quel que soit le nombre de dimensions, utilisez copy.deepcopy()
:
import copy
b = copy.deepcopy(a)
b = [x[:] for x in a]
vous pouvez également utiliser ce code sans importer le package de copie
b=a.copy()