Найти - Пользователи
Полная версия: Списки. Не могу понять, почему так происходит.
Начало » Python для новичков » Списки. Не могу понять, почему так происходит.
1
Lork
Приветствую всех!
Начал изучать Питона. Учу по Майку МакГрату “Python. Программирование для начинающих”. Дошёл до раздела со списками, и решил для освоения list.append(), list.extend() и т.д. написать собственную программулину:
======================================
1| # Исходный список:
2| list1=
3| print('Исходный список list1:', list1)
4|################################
5| list2=list1
6| list2.append('d')
7| print('list2:', list2)
8| print('Проверка неизменяемости list1:', list1)
9| # Конец
======================================
По исполнению сего кода получаю:
======================================
1| Python 3.4.5 (default, Jul 03 2016, 12:57:15) в linux-uqui, Standard
2| >>> Исходный список list1:
3| list2:
4| Проверка неизменяемости list1:
======================================
Вопрос: почему в исходный list1 тоже добавляется элемент “d” - оператор присваивания в строке 5 работает в обе стороны, да ещё и после исполнения строк кода, находящихся после него???

Заранее благодарю за ответ(ы).

З.Ы. Программа писана и запущена в IDE Eric5, файл прикладываю.
Romissevd
Рекомендую Вам почитать Лутца, а именно 6 глава подробно описывает эти моменты.
Lork
Romissevd
Рекомендую Вам почитать Лутца, а именно 6 глава подробно описывает эти моменты.

Спасибо за инфу, займусь на досуге.
ivn
 list2=list1[:]
Lork
ivn
Спасибо, заработало. Ушёл учить матчасть.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB