Python 计算包含DICT行的numpy数组中所有唯一值的总和

Python 计算包含DICT行的numpy数组中所有唯一值的总和,python,Python,我有一个大的numpy数组,每行包含一个单词的dict,格式与下面类似: data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}, ... } 有人能给我指出正确的方向吗?我该如何计算numpy数组每一行中dict的所有唯一值之和?从上面的例子中,我希望得到如下结果: result = {'a': 5, 'c': 2, 'ba': 3, ...} 目前,我能想到的唯一方法是遍历数据的每一行,然后遍历dict的每个键,如果找到唯一键,则将其附加到新dict并设置

我有一个大的numpy数组,每行包含一个单词的dict,格式与下面类似:

data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}, ... }
有人能给我指出正确的方向吗?我该如何计算numpy数组每一行中dict的所有唯一值之和?从上面的例子中,我希望得到如下结果:

result = {'a': 5, 'c': 2, 'ba': 3, ...}

目前,我能想到的唯一方法是遍历数据的每一行,然后遍历dict的每个键,如果找到唯一键,则将其附加到新dict并设置值,如果找到dict中已包含的键,则将该键的值添加到“result”中的键。尽管这似乎是一种低效的方法。

一种使用
for循环的纯Python解决方案。

data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}]
result = {}
for d in data:
    for k, v in d.items():
        if k in result:
            result[k] += v
        else:
            result[k] = v
输出:

{'c': 2, 'a': 5, 'ba': 3}

一个纯Python解决方案,使用
进行循环

data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}]
result = {}
for d in data:
    for k, v in d.items():
        if k in result:
            result[k] += v
        else:
            result[k] = v
输出:

{'c': 2, 'a': 5, 'ba': 3}

您可以使用
计数器()
,并在循环中使用
数据中包含的每个字典对其进行更新:

from collections import Counter

data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}]
c = Counter()
for d in data:
    c.update(d)
输出: 备用班轮: (由@AntonVBR在评论中提出)


您可以使用
计数器()
,并在循环中使用
数据中包含的每个字典对其进行更新:

from collections import Counter

data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}]
c = Counter()
for d in data:
    c.update(d)
输出: 备用班轮: (由@AntonVBR在评论中提出)


你可能想看看这里的一些想法:是否可以用它来代替?然后,这可以像
sum(data,Counter())
一样简单,看起来像一个列表,而不是一个numpy数组。如果它确实是一个数组,为什么要使用数组来保存dicts?您可能想看看这里的一些想法:是否可以使用它来代替?然后,这可以像
sum(data,Counter())
一样简单,看起来像一个列表,而不是一个numpy数组。如果它确实是一个数组,为什么要使用数组来保存dict?可以这样写在一行中:
sum((Counter(dict(x))表示数据中的x),Counter())
依据可以这样写在一行中:
sum((Counter(dict(x))表示数据中的x),Counter())
依据