Я бы хотел инициализировать словарь наборов (в Python 2.6) с помощью dict.fromkeys
, но результирующая структура ведет себя странно. Более конкретно:
>>>> x = {}.fromkeys(range(10), set([]))
>>>> x
{0: set([]), 1: set([]), 2: set([]), 3: set([]), 4: set([]), 5: set([]), 6: set([]), 7: set([]), 8: set([]), 9: set([])}
>>>> x[5].add(3)
>>>> x
{0: set([3]), 1: set([3]), 2: set([3]), 3: set([3]), 4: set([3]), 5: set([3]), 6: set([3]), 7: set([3]), 8: set([3]), 9: set([3])}
Я, очевидно, не хочу добавлять 3 ко всем наборам, только к набору, соответствующему x[5]
. Конечно, я могу избежать проблемы, инициализируя x
без fromkeys
, но я хотел бы понять, что мне здесь не хватает.