我有这种形式的字典清单:
[
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
]
我想像这样通过列表中的每个元素通过键求和:
{
'signal_8': 3,
'signal_1': 21,
'signal_10': 15,
'signal_5': 6,
'signal_2': 15,
'signal_6': 9,
'signal_4': 27,
'signal_3': 18,
'signal_9': 12,
'signal_7': 24
}
我尝试过的是以下内容:
result = {}
sm = 0
for elm in original_list:
for k,v in elm.items():
sm += v
result[k] = sm
print(result)
但它仍然不起作用。
您想要的是Counter
集合类型。集合上的Python文档最能描述它,但是从本质上讲aCounter
是一种特殊的字典,其中所有值都是整数。您可以传递任何密钥(包括不存在的密钥)并将其添加。例如:
from collections import Counter
original_list = [
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
]
result = Counter()
for elem in original_list:
for key, value in elem.items():
result[key] += value
print(result)
编辑:@timgeb提供了此答案的一种变体,该变体update()
在Counter
对象上本地使用了该方法。我建议将其作为此处的最佳答案
问题内容: 我有以下词典列表: 我想对每个求和并在字典列表中得到以下结果: 问题答案: from collections import defaultdict 它产生: 要将其转换为词典列表: 结果:
问题内容: 我试图以一种优雅的方式编写一个函数,该函数将字典列表进行分组并汇总(加和)like键的值。 例: 我尝试使用itertools为groupby进行此操作,并对每个相似键值对进行求和,但是这里缺少一些内容。这是我的函数当前的样子: 问题答案: 您可以使用和。 使用dict可以在中完成,而排序则需要时间。 的优点是它将自动将相似键的值相加。 例:
问题内容: 区别在于,我的值是列表,而不仅仅是单个值。 因此,我想转: 变成: 假设我很高兴自己的价值观是独一无二的。 问题答案: 您可以使用字典理解和方法。
问题内容: 因此,我将此索引作为字典。 我需要反转索引,因此它将是一个字典,其中值的重复项合并为一个键,并以2个原始键作为值,如下所示: 是的,我手动输入了以上内容。 我的教科书具有反转字典的功能: 它适用于简单的key:value对 但是,当我尝试使用具有诸如值之类的列表的dict的函数时,出现以下错误消息: 我已经花了一个小时寻找解决方案,这本书无济于事,我怀疑我可以以某种方式使用元组,但是我
键值列表 图 字典 到目前还没有讲到任何关联性数据结构,即那种可以将一个或几个值关联到一个key上。 不同语言有不同的叫法,如字典,哈希,关联数组,图,等等。 Elixir中有两种主要的关联性结构:键值列表(keyword list)和图(map)。 7.1-键值列表 在很多函数式语言中,常用二元元组的列表来表示关联性数据结构。在Elixir中也是这样。 当我们有了一个元组(不一定仅有两个元素的元
我想更改字典的纬度和经度值。 它正在抛出以下错误消息: 对于此它在targetWaypoints内打印一个完整的字典。我想打印纬度值。 提前谢谢。