Копирование 2D-списков в python

Привет, я хочу скопировать 2D-список, так что, если я изменяю один список, другой не изменяется.

В списке 1 D я просто делаю это:

a = [1,2]
b = a[:]

И теперь, если я изменяю b, a не изменяется.

Но это не работает для 2D-списка:

a = [[1,2],[3,4]]
b = a[:]

Если я изменяю b, a также будет изменен.

Как это исправить?

Ответы

Ответ 1

Для более общего решения, которое работает независимо от количества измерений, используйте copy.deepcopy():

import copy
b = copy.deepcopy(a)

Ответ 2

b = [x[:] for x in a]