[英]tabulate counts of all values from all keys in list of dicts
我有一个这样的列表:
[{'migs_ba': 'O',
'migs_eu': 'O',
'migs_org': 'O',
'migs_pl': 'O',
'migs_vi': 'O',
'mimag': 'EM',
'mimarks_c': 'O',
'mimarks_s': 'EM',
'mims': 'EM',
'misag': 'EM',
'miuvig': 'EM'},
{'migs_ba': 'O',
'migs_eu': 'O',
'migs_org': 'O',
'migs_pl': 'O',
'migs_vi': 'O',
'mimag': 'EM',
'mimarks_c': 'O',
'mimarks_s': 'EM',
'mims': 'EM',
'misag': 'EM',
'miuvig': 'EM'}...
]
我想列出所有显示为该字典列表中任何键的值的字符串,如下所示
{"O": 12, "EM": 10}
考虑到您将列表命名为“元素”,这应该可行
from collections import Counter
counter = Counter([val for ele in elements for val in ele.values()])
print(counter)
output
Counter({'O': 12, 'EM': 10})
注意计数器继承自 dict,并且具有它的所有方法和行为
对于列表中所有字典中的每个值,测试值是“O”还是“EM”
result={
'EM':0,
'O':0,
}
for dict_ in lolo:
for value in dict_.values():
if value == 'EM':
result['EM'] += 1
else:
result['O'] += 1
或者更通用:
for dict_ in lolo:
for value in dict_.values():
if result.get(value):
result[value] += 1
else:
result[value] = 1
lolo = [{'migs_ba': 'O',
'migs_eu': 'O',
'migs_org': 'O',
'migs_pl': 'O',
'migs_vi': 'O',
'mimag': 'EM',
'mimarks_c': 'O',
'mimarks_s': 'EM',
'mims': 'EM',
'misag': 'EM',
'miuvig': 'EM'},
{'migs_ba': 'O',
'migs_eu': 'O',
'migs_org': 'O',
'migs_pl': 'O',
'migs_vi': 'O',
'mimag': 'EM',
'mimarks_c': 'O',
'mimarks_s': 'EM',
'mims': 'EM',
'misag': 'EM',
'miuvig': 'EM'}
]
result = {
}
{'O': 12, 'EM': 10}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.