【发布时间】:2016-09-23 03:23:33
【问题描述】:
我有这个字典列表:
[{'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'}]
我需要创建一个函数来遍历这些字典并计算每种类型的犯罪发生了多少次。输出应该是这样的字典列表:
[{'LARCENY' : 3}, {'BURGLARY' : 2}, {'ROBBERY - STREET' : 3}...
对于每种类型的犯罪,我需要知道该犯罪发生了多少次。 这是我目前所拥有的:
result = {}
for k in data:
if 'Description' in k:
result[k['Description']] = result.get(k['Description'], 0) + 1
但是给出的输出给了我同一个字典中的所有内容,但我希望它们在一个字典列表中,每个犯罪与每个字典。
如果您不明白我的意思,请随时提出任何问题。
【问题讨论】:
-
为什么?具有唯一键的单个字典将比多个单键字典更有用。
-
看起来您要的是一个字典列表,每个字典中只有一个元素。这比简单的字典有什么好处?
-
获得所需的输出后,我需要将键和值分隔到不同的列表中,使用 [li['Description'] for li in result]
-
如果你有一个 dict d,你可以通过 [{k: d[k]} for k in d.keys()] 将键分成单独的 dicts]
标签: python list python-2.7 dictionary