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),就是這種

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}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM