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

枫铃3年前 (2021-09-30)Python231

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

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),就是这种

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = [i for i in range(5)]
# result: a = [0, 1, 2, 3, 4]

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

d1 = {(it['x'], it['y']):it['demand'] for it in l1}

相关文章

Python基础教程:生成器

1、生成器 def func(): print("111") yield 222 gener = func() #...

python 的filter()函数

filter(): 和...

Python零基础教程:函数和类内建魔法属性

前言 关于对象的魔法方...

Python格式化字符串知多少

Python格式化字符串知多少

字符串格式化相当于字符串模板。也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。