Почему .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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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