Как создать определенный список по умолчанию в defaultdict?

Я пытаюсь создать defaultdict, который инициализируется определенным списком. Таким образом, если я получу доступ к словарю с помощью существующего ключа, он будет инициализирован определенным списком, скажем, [True, True, True].

Вместо того, чтобы делать это

my_defaultdict = collections.defaultdict(list)

Так, например, что-то вроде этого (явно не сработает)

my_defaultdict = collections.defaultdict([True, True, True])

Я пробовал что-то вроде этого, но это не работает

my_defaultdict = collections.defaultdict(lambda: list[True, True, True])

Для начала я просмотрел этот вопрос, но не смог разобраться.


person user2015487    schedule 26.05.2015    source источник
comment
Пробовали lambda: [True, True, True]?   -  person vaultah    schedule 26.05.2015
comment
фу! да. это верно. Я думал, что пробовал это. Спасибо!!   -  person user2015487    schedule 26.05.2015
comment
@doublep, которому нужно больше скобок: list() takes at most 1 argument. Обратите внимание, что lambda также каждый раз создает новый список.   -  person jonrsharpe    schedule 26.05.2015
comment
@jonrsharpe: Тьфу, я только что удалил свой комментарий.   -  person doublep    schedule 26.05.2015


Ответы (1)


Аргумент defaultdict должен быть функцией или любым вызываемым объектом:

my_defaultdict = collections.defaultdict(lambda : [True,True,True])
person bigOther    schedule 26.05.2015