Я столкнулся с таким поведением, которое меня удивило в Python 2.6 и 3.2:
>>> xs = dict.fromkeys(range(2), [])
>>> xs
{0: [], 1: []}
>>> xs[0].append(1)
>>> xs
{0: [1], 1: [1]}
Тем не менее, в dict
, dict
в 3.2, показано более вежливое поведение:
>>> xs = {i:[] for i in range(2)}
>>> xs
{0: [], 1: []}
>>> xs[0].append(1)
>>> xs
{0: [1], 1: []}
>>>
Почему от fromkeys
ведут себя так?