Копирование вложенных списков в Python

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

Для одномерного списка я просто делаю это:

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

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

Но это не работает на двумерный список:

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

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

Как я фиксирую это?

38
задан vaultah 17 March 2018 в 15:17
поделиться

2 ответа

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

import copy
b = copy.deepcopy(a)
52
ответ дан 27 November 2019 в 03:13
поделиться
b = [x[:] for x in a]
50
ответ дан 27 November 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: