Почему .append () влияет на все элементы в списке списков?Python

Программы на Python
Anonymous
 Почему .append () влияет на все элементы в списке списков?

Сообщение Anonymous »

Я создаю список списков и хочу добавить элементы в отдельные списки, но когда я пытаюсь добавить в один из списков (

Код: Выделить всё

a[0].append(2)
), элемент добавляется ко всем спискам.

Код: Выделить всё

a = []
b = [1]

a.append(b)
a.append(b)

a[0].append(2)
a[1].append(3)
print(a)
дает: [[1, 2, 3], [1, 2, 3]]
, тогда как я ожидаю: [[1, 2], [1, 3]]
Изменение способа я строит начальный список списков, делая b int вместо Список и размещение кронштейнов внутри .append () , дает мне нужный вывод:

Код: Выделить всё

a = []
b = 1

a.append([b])
a.append([b])

a[0].append(2)
a[1].append(3)
print(a)
дает: [[1, 2], [1, 3]]
Но почему? Не интуитивно, что результат должен быть другим. Я знаю, что это связано с тем, что есть несколько ссылок на один и тот же список, но я не вижу, где это происходит.

Подробнее здесь: https://stackoverflow.com/questions/636 ... t-of-lists

Вернуться в «Python»