簡體   English   中英

使用匹配的key:value對連接Python字典

[英]Join Python dictionaries with a matching key:value pair

假設我有一個字典字典,像這樣:

{
    customers:[{customername:"Bob", age:32}],
    addresses:[{customername:"Bob", address:"123 Seseme street",addressname:"home"},
               {customername:"Bob", address:"543 42nd street", addressname:"Work"}],
    phonenumbers:[{customername:"Bob", phone:1234567, phonename:"Cell"}]
]

我想從所有其他具有key:value對'customername:“ Bob”'的字典中創建一個新字典:

Bob = {customername:"Bob", address:[{addressname:"home",address:"123 Seseme street"},
                                    {addressname:"Work", address:"543 42nd street"}],
       phone:{phonename:"Cell", phone:1234567}

第一個問題:如何以最優雅的方式創建此新詞典?

第二個問題:是否有一種方法可以將包含任意數量詞典的頂級詞典加入這些詞典,而並非所有詞典都包含該特定鍵?

Brionius是對的,這比起初看要容易:

l = [[x for x in db[x] if x['name']=='bob'] for x in db]
bob = [item for sublist in l for item in sublist

如果我決定保留頂級詞典,則可以這樣做:

{key:value for (key,value) in db.iteritems() for item in value if item['name']=='bob'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM