2011-07-30 46 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'} –