Python 计算具有相同值的dict
我确实计算了具有相同值的dict,并尝试将结果添加到dict中。但问题是我无法删除重复的dictPython 计算具有相同值的dict,python,dictionary,Python,Dictionary,我确实计算了具有相同值的dict,并尝试将结果添加到dict中。但问题是我无法删除重复的dict from collections import defaultdict [ {"project_name": "apollo"}, {"project_name": "apollo"} ] 例如,列表中有两个阿波罗项目。所以我尝试合并具有相同值的dict。并将计数结果添加为新的键值对 预期的产出应该是这样的 [ { "project_name": "apollo",
from collections import defaultdict
[
{"project_name": "apollo"},
{"project_name": "apollo"}
]
例如,列表中有两个阿波罗项目。所以我尝试合并具有相同值的dict。并将计数结果添加为新的键值对
预期的产出应该是这样的
[
{
"project_name": "apollo",
"count": "2"
}
]
我试过下面的方法
d = defaultdict(int)
for item in conversions:
key = item['project_name']
d[key] += 1
dic["count"] = d[key]
[
{"project_name": "apollo", "count": "1"},
{"project_name": "apollo", "count": "2"}
]
但结果当然是如下所示
d = defaultdict(int)
for item in conversions:
key = item['project_name']
d[key] += 1
dic["count"] = d[key]
[
{"project_name": "apollo", "count": "1"},
{"project_name": "apollo", "count": "2"}
]
如何管理数量记录和合并 稍微更改了代码并重新构造了结果:
from collections import defaultdict
conversions = [
{"project_name": "apollo"},
{"project_name": "apollo"},
{"project_name": "foo"},
{"project_name": "apollo"}
]
d = defaultdict(int)
for item in conversions:
key = item['project_name']
d[key] += 1
res = [{"project_name": k, "count": v} for (k, v) in d.items()]
print(res)
输出:
[{'count': 3, 'project_name': 'apollo'}, {'count': 1, 'project_name': 'foo'}]
您提到了相同的值…但是键是相同的,所以[{foo:bar},{baz:bar}]是否应该产生一个2的结果计数并将其分组在一起?如果是这样,它们应该如何格式化?实际上,我在问题中提到了预期的输出。是的,两个dict都有相同的键值对@这是预期的结果,谢谢你的触摸。帮助很大。但在res-var中,我觉得有点迷茫:它被称为列表理解——谷歌向你展示了很多关于它的教程: