Python DefaultDicts词典

2024-06-28 11:15:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试建立一个包含defaultdicts的字典:

from collections import defaultdict

my_dict = {
'first_key':defaultdict(list)
}

my_dict['first_key'].extend('add this to list')

…但它返回:AttributeError: 'collections.defaultdict' object has no attribute 'extend'

建议?谢谢。你知道吗


Tags: tokeyfromimportadd字典mythis
1条回答
网友
1楼 · 发布于 2024-06-28 11:15:52

如果我错了,请纠正我,但我认为你不需要一本默认词典。使用内置的dict方法^{}可以轻松完成您要做的事情:

>>> my_dict = {}
>>> my_dict.setdefault('numbers', []).extend([1, 2, 3])
>>> my_dict
{u'numbers': [1, 2, 3]}
>>> my_dict.setdefault('numbers', []).append(4)
>>> my_dict
{u'numbers': [1, 2, 3, 4]}

setdefault接受一个(可能丢失的)键和一个默认值来初始化它,如果它丢失了。如果密钥已经存在,它只会返回它。你知道吗

正如John Kugelman在评论中指出的那样,这也可以用defaultdict以正常的方式完成:

>>> from collections import defaultdict
>>> my_dict = defaultdict(list)
>>> my_dict
defaultdict(<type 'list'>, {})
>>> my_dict['numbers'].extend([1, 2, 3])
>>> my_dict
defaultdict(<type 'list'>, {u'numbers': [1, 2, 3]})
>>> my_dict['numbers'].append(4)
>>> my_dict
defaultdict(<type 'list'>, {u'numbers': [1, 2, 3, 4]})

相关问题 更多 >