Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2009 21:48:36

g0rd0n
От:
Зарегистрирован: 2009-01-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

>>> a =
>>> a.append(a)
>>> a
[1, ]
>>> a
[1, ]
>>> a
[1, ]
>>>
я извиняюсь, если это обсуждалось!
Как представить a?



Офлайн

#2 Янв. 20, 2009 23:25:51

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

у тебя получаеться закольцовывание.

>>> a == a[1] == a[1][1] == a[1][1][1] == a[1][1][1][1]
True
т.е. a, a, a и т.д. это одно и тоже.



Отредактировано (Янв. 20, 2009 23:38:17)

Офлайн

#3 Янв. 21, 2009 19:01:06

g0rd0n
От:
Зарегистрирован: 2009-01-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

ну да, так а как питон такое нормально интерпритирует?



Офлайн

#4 Янв. 21, 2009 19:17:24

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

g0rd0n
ну да, так а как питон такое нормально интерпритирует?
это интересный вопрос, не менее интересный вопрос, зачем вам это всё нужно (создание циклических ссылок)?



Отредактировано (Янв. 21, 2009 19:18:03)

Офлайн

#5 Янв. 21, 2009 19:30:56

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

он такие моменты специально отслеживает =)



Офлайн

#6 Янв. 21, 2009 20:20:46

g0rd0n
От:
Зарегистрирован: 2009-01-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

я только вчера знакомиться с питоном начал.
Попробовал вот… :)



Офлайн

#7 Янв. 21, 2009 23:31:56

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

функция .append()

Хм… Ниразу такого не делал… Интересно…
Но правда интересно, где такое может понадобиться? И насколько нормально это дело будет обработано сборщиком мусора?

shiza
>>> a == a == a == a == a
True
ИМХО, конечно, но более наглядно будет так:
>>> a is a[1][1][1][1][1][1][1]
True
Всё-таки эти объекты не просто равны, а являются одним и тем же.

P.S. Дарвиния – одна из лучших, из когда-либо придуманных, игр!



Офлайн

#8 Янв. 21, 2009 23:57:24

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

ZZZ
И насколько нормально это дело будет обработано сборщиком мусора?
если ссылок из вне больше нет, то список нормально удалится сборщиком (в том его и работа, искать циклические ссылки), тут есть одно НО, только если у объекта/ов в списке нет перегруженного __del__.
Для полного прояснения рекомендую почитать посты Анднея Светлова



Офлайн

#9 Янв. 22, 2009 02:20:07

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

функция .append()

Там последний пост как раз мой… :-)
А вообще да, правильно. Забывается то, с чем долго не сталкиваешься.



Офлайн

#10 Март 31, 2011 07:57:20

fritifly
От:
Зарегистрирован: 2011-03-31
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

функция .append()

Доброго времени суток. Просидел всю ночь, так и неразобрался:
Вобщем задача такова, первый элемент тюпла qqq = тюплу . Также есть еще одит тюпл i.
Задача добавить каждый элемент тюпла i, к первому элементу qqq.
Вроде постарался объяснить понятно, ниже код, в нем все логично и понятно, что я пытался сделать.
Особое внимание прошу обратить на переменную temp_hren!!!

qqq = [[1, 2], [3, 4]]
i = [10, 11, 12]
temp = 0

hren = qqq.pop(0)
print "qqq - ", qqq, "\nhren - ", hren, "\n"
for temp in i:

temp_hren = hren
print "temp_hren #1 - ", temp_hren
qqq.append(hren)
qqq[-1].append(temp)
print "temp_hren #2 - ", temp_hren, " - eto normalno?\n"

print "qqq = ", qqq
print "dolzno bit qqq = [[3, 4], [1, 2, 10], [1, 2, 11], [1, 2, 12]]"



Отредактировано (Март 31, 2011 08:15:50)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version