Copying nested lists in Python

copy, deep-copy, list, python

Solution

For a more general solution that works regardless of the number of dimensions, use `copy.deepcopy()`:

import copy
b = copy.deepcopy(a)

Problem

I want to copy a 2D list, so that if I modify one list, the other is not modified. For a one-dimensional list, I just do this: ``` a = [1, 2] b = a[:] ``` And now if I modify `b`, `a` is not modified. But this doesn't work for a two-dimensional list: ``` a = [[1, 2],[3, 4]] b = a[:] ``` If I modify `b`, `a` gets modified as well. How do I fix this?

Original source

Related problems