Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 11, 2008 19:27:43

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

Словарь в списке

Всем привет! Наткнулся тут на непонятность в Питоне и никак не могу её обойти.
Подскажите плиз, как разобраться с ссылками на объекты.
Простой пример:

ex={"example":1}
stack=[]
while ex['example']<10:
ex['example']+=1
stack.append(ex)
print stack
в этом случае я получу в конце стэк из десяти одинаковых списков {'example':10}
а как же сделать, чтобы я получил стэк и десяти различных списков где бы example было от 1 до 10 ?
Буду весьма благодарен.



Отредактировано (Фев. 11, 2008 19:38:37)

Офлайн

#2 Фев. 11, 2008 19:39:28

AlexKiriukha
От:
Зарегистрирован: 2008-02-03
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь в списке

Вероятно вместо stack.append(oper) нужно было stack.append(ex). Если так, то попробуйте сделать делать копию словаря таким образом: stack.append(ex.copy())



Офлайн

#3 Фев. 11, 2008 19:42:23

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

Словарь в списке

AlexKiriukha
Вероятно вместо stack.append(oper) нужно было stack.append(ex). Если так, то попробуйте сделать делать копию словаря таким образом: stack.append(ex.copy())
Да, спасибо, .copy() это то , что нужно )



Офлайн

#4 Фев. 12, 2008 05:39:06

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Словарь в списке

stack = [dict(example=x) for x in xrange(1, 10)]
;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Фев. 12, 2008 05:39:48)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version