LINUX.ORG.RU

нужна помощь по python (dict.fromkeys)


0

0

>>> d1={"x":[],"y":[]}
>>> d1["x"].append(1)
>>> d1
{'y': [], 'x': [1]}

здесь всё, конечно же, ок, идём дальше:

>>> keys=("x","y")
>>> d2=dict().fromkeys(keys,[])
>>> d2
{'y': [], 'x': []}
>>> d2["x"].append(1)
>>> d2
{'y': [1], 'x': [1]}

почему значение добавилось в _оба_ списка?

anonymous

Очевидно потому, что d2 содержит 2 ключа, ссылающихся на 1 массив, переданый "fromkeys"-у в качестве параметра.

DonkeyHot ★★★★★
()
Ответ на: комментарий от yuriy123

Спасибо большое за ответы; я только начинаю пробовать python и некоторые вещи очень непривычны.

Кстати, вдруг кому пригодится: после некоторых проб "проблема" с клонированием списков была решена так:

d = dict.fromkeys (keys, [][:])

anonymous
()
Ответ на: комментарий от anonymous

sorry, sorry: d = dict.fromkeys (keys, [][:]) не канает :(

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

>to DonkeyHot && watashiwa_daredeska

спасибо

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.