Создает ли новый объект списка добавление списка, не назначенного переменной, к другой переменной, указывающей на другой список? - PullRequest
0 голосов
/ 21 февраля 2019

Вот что я имею в виду:

x = [1, 2, 3]
y = x
y = y + [4]

Насколько я понимаю, переменная y указывает на переменную x, в которой хранится объект списка [1, 2, 3].Во второй строке кода и x, и y хранят один и тот же идентификатор.В последней строке кода мы меняем то, что хранит переменная y.Будет ли добавление списка [4] к y создать новый объект списка, содержащий объект int для 4?Я почти уверен, что и x, и y все еще указывают на один и тот же идентификатор, так как списки изменчивы, мне просто нужно подтверждение в [4].Создан ли новый список и объект int?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Неважно, я понял!Я ошибся, новый объект создан для y в третьей строке!это список [1, 2, 3, 4].Переменная x по-прежнему относится к list [1, 2, 3].Добавление [4] аналогично функции .extend () в python, в которой для объекта 4 будет создан новый объект int, но не новый объект списка, содержащий это int!

0 голосов
/ 21 февраля 2019

Выражение y + [4] создает новый список, который является результатом добавления [4] к тому, что y содержит.Присвоение результата этого выражения y изменяет y, указывая на созданный новый список.

На самом деле это ничем не отличается от следующего кода:

y = 1
y = y + 1

После этого кода y будет 2, а значение 1 не изменилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...