我有一份口述清单:
[{'Description': 'LARCENY'}, {'Description': 'LARCENY'}, {'Description': 'BURGLARY'}, {'Description': 'ROBBERY - STREET'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'AUTO THEFT'}, {'Description': 'AUTO THEFT'}, {'Description': 'ROBBERY - STREET'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'BURGLARY'}, {'Description': 'BURGLARY'}, {'Description': 'LARCENY'}, {'Description': 'ROBBERY - COMMERCIAL'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'COMMON ASSAULT'}, {'Description': 'COMMON ASSAULT'}]
我需要创建一个函数来遍历这些字典并计算每种类型的犯罪发生的次数。输出应该是这样的dict列表:
^{pr2}$对于每种类型的犯罪,我需要知道发生了多少次。 到目前为止,我得到的是:
result = {}
for k in data:
if 'Description' in k:
result[k['Description']] = result.get(k['Description'], 0) + 1
但是给出的输出给我的是同一个dict中的所有内容,但是我希望它们在dict列表中,每个dict中的每个犯罪
如果你不明白我的意思,你可以问任何问题。在
鉴于你目前的结果。。。在
虽然您的数据结构没有上述意义,但是您可以使用collections中的Counter类轻松解决这个问题。在
这将产生以下输出:
^{pr2}$我建议在你想数数的时候看看Counter类。在
看来你也想维持犯罪的发生顺序。在
所以,用^{} 代替普通dict
现在,用
^{pr2}$counter
中的每个键、值对构造一个新字典,如下所示从评论来看
那么,不要创建字典列表。直接从}创建两个列表,如下所示
keys
和{相关问题 更多 >
编程相关推荐