2011-07-30 121 views
1

我將如何將這兩個與Python結合?如何結合兩個詞典列表

d1 = [{a:1, b:2},{a:2,b:5}] 
d2 = [{s:3, f:1},{s:4, f:9}] 

我只想D2添加到結束時,如果D1,所以:

d2 = [{a:1, b:2},{a:2,b:5},{s:3, f:1},{s:4, f:9}] 

回答

6

d1.extend(d2)但你合併兩個列表而不是兩個字典

6

正確回答你的問題是dict.extend()(如Ant指出的那樣)。然而,你的例子涉及列表連接,而不是字典擴展。

所以,如果兩個參數都是列表,你可以將它們連接起來,如:

> d1 + d2 
[{'a': 1, 'b': 2}, {'a': 2, 'b': 5}, {'s': 3, 'f': 1}, {'s': 4, 'f': 9}] 

這相當於調用list.extend():

L.extend(iterable) -- extend list by appending elements from the iterable 
4

這是我如何做到這一點的Python 2.7版:

combined = {} 
combined.update(d1) 
combined.update(d2) 

這是好事,定義一個效用函數來做到這一點:

def merge(d1, d2): 
    ''' Merge two dictionaries. ''' 
    merged = {} 
    merged.update(d1) 
    merged.update(d2) 
    return merged 
+0

清潔,涵蓋所有問題。 – kcrossen

+0

>>> d1 = [{'a':1,'b':2},{'a':2,'b':5}] >>> d2 = [{'s':3,'' f':1},{'s':2,'f':9}] >>> l3 = {} >>> l3.update(l1) >>> l3 {'a':' b'} >>> l3.update(l2) >>> l3 {'a':'b'} –