如何添加相同的'项目'在Python中的多个词典的字典中?

时间:2017-12-09 13:13:39

标签: python python-3.x dictionary

即使他们不具备属性速度,我怎么能加快这些角色的速度呢?这是一个例子,还有很多其他属性。随机挑选字符并将其组合在一起:

character_1 = {'Money': .3, 'Strength': .25, 'Speed': .05}
character_2 = {'Money': .3, 'Age': 25, 'Speed': .7}
character_3 = {'Money': .3, 'Strength': .25, 'Power': 5}

我怎样才能找出所有这些角色的组合速度,金钱,年龄等? (如果没有为其他人定义年龄,正确答案应该总共25年) 谢谢!!

2 个答案:

答案 0 :(得分:0)

看看defaultdict 。您可以将字符实现为浮动默认值,这样就可以为尚未设置的任何项目提供0.0

from collections import defaultdict

character = defaultdict(float)

所以现在任何第一项检索都会将该值初始化为0,如果之前没有写过:

In [7]: character["Money"]
Out[7]: 0.0

In [8]: character["Speed"]
Out[8]: 0.0

但是,这种方法对某些应用程序有其缺点。就像当dict中的所有值都不是数字类型或具有不同的初始值时一样。在这种情况下,class可能是你唯一的选择,正如@Anton vBR指出的那样。

答案 1 :(得分:0)

您可以遍历list的{​​{1}}并将dicts合并到结果values中,如下所示:

dict