Python字典列表字段重组造成新的字典

原文连接:Python字典列表字段重组造成新的字典

最近遇到这样一个需求,须要将字典列表中的字段进行重组,造成一个新的字典。举个例子吧:python

l1 = [{"x": 22, "y": 22, "demand": 18},
        {"x": 36, "y": 26, "demand": 26},
        {"x": 21, "y": 45, "demand": 11}]

# 要把其中x y做为Key, demand做为value,造成下面这样一个字典:
d1 = {(22, 22): 18,
     (36, 26): 26,
     (21, 45): 11}

咱们应该大都知道Python存在一个列表生成器(list generator),就是这种code

a = [i for i in range(5)]
# result: a = [0, 1, 2, 3, 4]

其实,Python也有一个字典生成器,只须要把上面的中括号改为大括号就可,前面的例子能够用一句话实现为:get

d1 = {(it['x'], it['y']):it['demand'] for it in l1}
相关文章
相关标签/搜索