Jer*_*cia 4 python dictionary list
我正在寻找一种适当的方法来压扁这样的东西
a = [{'name': 'Katie'}, {'name': 'Katie'}, {'name': 'jerry'}]
Run Code Online (Sandbox Code Playgroud)
有
d = {}
Run Code Online (Sandbox Code Playgroud)
使用这样的双重映射:
map(lambda x: d.update({x:d[x]+1}) if x in d else d.update({x:1}),map(lambda x: x["name"] ,a))
Run Code Online (Sandbox Code Playgroud)
我得到了我想要的结果:
>>> d
{'jerry': 1, 'Katie': 2}
Run Code Online (Sandbox Code Playgroud)
但是我觉得它可以做得更好......而不是列表理解,我觉得我们的地图减少了.
我不太喜欢你的解决方案,因为它很难阅读并且有副作用.
对于您提供的示例数据,使用Counter(它是内置字典的子类)是一种更好的方法.
>>> Counter(d['name'] for d in a)
Counter({'Katie': 2, 'jerry': 1})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |