Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2017 22:22:02

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки. Не могу понять, почему так происходит.

Приветствую всех!
Начал изучать Питона. Учу по Майку МакГрату “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, файл прикладываю.

Прикреплённый файлы:
attachment spiski.py (274 байта)

Офлайн

#2 Янв. 18, 2017 22:58:35

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Списки. Не могу понять, почему так происходит.

Рекомендую Вам почитать Лутца, а именно 6 глава подробно описывает эти моменты.

Офлайн

#3 Янв. 18, 2017 23:06:50

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки. Не могу понять, почему так происходит.

Romissevd
Рекомендую Вам почитать Лутца, а именно 6 глава подробно описывает эти моменты.

Спасибо за инфу, займусь на досуге.

Офлайн

#4 Янв. 19, 2017 10:16:59

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки. Не могу понять, почему так происходит.

 list2=list1[:]

Отредактировано ivn (Янв. 19, 2017 10:17:20)

Офлайн

#5 Янв. 19, 2017 15:34:21

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки. Не могу понять, почему так происходит.

ivn
Спасибо, заработало. Ушёл учить матчасть.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version