【发布时间】:2020-07-10 17:20:59
【问题描述】:
我有什么:
d1=[{'type':'fruit','name':'apple'},{'type':'fruit','name':'orange'},{'type':'vehicle','name':'car'},{'type':'vehicle','name':'bike'}]
我做了什么:
res=[{i['type']:i['name']} for i in d1]
我收到了什么:
res=>[{'fruit': 'apple'}, {'fruit': 'orange'}, {'vehicle': 'car'}, {'vehicle': 'bike'}]
但我需要什么:
res=>{'fruit': ['apple','orange'], 'vehicle': ['car','bike']}
如何做到这一点?提前谢谢
更新 这将更具可读性。但我想要一个班轮!
u={}
for i in d1:
if u.get(i['type']):
u[i['type']].append(i['name'])
else:
u[i['type']]=[i['name']]
【问题讨论】:
-
我强烈建议避免使用单行代码以提高可读性。但是,如果您真的需要它,@deceze 的回答非常好。
标签: python python-3.x list-comprehension