python defaultdict 妙用二维字典

举报
lessIsBetter 发表于 2023/06/16 12:57:40 2023/06/16
【摘要】 Python中的defaultdict是一个非常有用的数据结构,它可以让我们在字典中使用默认值,而不必担心键不存在的情况。如果键不存在,defaultdict会自动创建一个默认值。下面是一个简单的例子:from collections import defaultdictd = defaultdict(int)d['a'] += 1d['b'] += 2d['c'] += 3print(d)...

Python中的defaultdict是一个非常有用的数据结构,它可以让我们在字典中使用默认值,而不必担心键不存在的情况。如果键不存在,defaultdict会自动创建一个默认值。

下面是一个简单的例子:

from collections import defaultdict

d = defaultdict(int)
d['a'] += 1
d['b'] += 2
d['c'] += 3

print(d) # defaultdict(<class 'int'>, {'a': 1, 'b': 2, 'c': 3})

在上面的例子中,我们创建了一个defaultdict,并将其默认值设置为int类型的0。然后我们向字典中添加了三个键值对,每个键对应的值都加上了一个不同的数值。最后,我们打印了这个字典,可以看到它的输出与普通字典的输出相同。

如果我们想要创建一个二维字典,可以使用defaultdict的嵌套。下面是一个例子:

from collections import defaultdict

d = defaultdict(lambda: defaultdict(int))
d['a']['b'] += 1
d['a']['c'] += 2
d['b']['c'] += 3

print(d) # defaultdict(<function <lambda> at 0x11111111111>, {'a': defaultdict(<class 'int'>, {'b': 1, 'c': 2}), 'b': defaultdict(<class 'int'>, {'c': 3})})

在上面的例子中,我们创建了一个嵌套的defaultdict,并将其默认值设置为int类型的0。然后我们向字典中添加了三个键值对,每个键都是一个二元组,第一个元素是外层字典的键,第二个元素是内层字典的键。最后,我们打印了这个字典,可以看到它的输出是一个嵌套的字典结构。

【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容, 举报邮箱:cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。