Уведомления

Группа в Telegram: @pythonsu

#1 Июль 22, 2018 19:42:27

lerr
Зарегистрирован: 2018-07-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите по спискам

Здравствуйте. Не могу разобраться в коде при изучении программы.
Список увеличивается таким кодом :

 def Enlarge(table):
    table[:] = Init(len(table[2])*2, table[2])[:]
    return table
Как тут используется запись
 table[:] =
? (где об этом можно почитать)
Если использовать просто
 table = Init(len(table[2])*2, table[2])[:]
, то при возврате списка, он не увеличивается.

Офлайн

#2 Июль 22, 2018 20:36:40

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Подскажите по спискам

это создание копии(нового обьекта)

 >>> l = []
>>> id(l)
4365312264
>>> id(l[:])
4355936968
https://habr.com/post/89456/

Офлайн

#3 Июль 22, 2018 21:01:02

lerr
Зарегистрирован: 2018-07-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите по спискам

В данном случае возврат копии или того же самого объекта в чем отличаются?
Возвращается всегда увеличенный список, но конечный результат разный. При отладке, после возврата список в одном случае остается увеличенный, а в другом возвращается к первоначальному размеру. Вот тут я пока не понимаю.
Здесь полный код программы - http://uneex.org/LecturesCMC/PythonIntro2017/07_Dicts?action=AttachFile&do=view&target=emuhash.py

Отредактировано lerr (Июль 22, 2018 21:29:22)

Офлайн

#4 Июль 22, 2018 22:06:59

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Подскажите по спискам

> В данном случае возврат копии или того же самого объекта в чем отличаются?

В данном случае всё содержимое списка заменяется содержимым другого списка. Ну и да, это пример того как делать не надо.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Июль 22, 2018 22:19:52

lerr
Зарегистрирован: 2018-07-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите по спискам

Спасибо.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version