2012-11-29 130 views
1

我是新來的Python並被困在一些基本的東西中。如何從詞典列表中獲取詞典

說有字典的名單如下:

[{key1:value1},{key2:value2},...{keyn:valuen}] 

有我假設你的意思是你想{key1: value1, key2:value2, keyn:valuen}提取字典

{key1:value1},{key2:value2},...{keyn:valuen} 

回答

5

的Python的方式。也就是說,您想要將所有單獨的詞典與各個詞典中的每個鍵和值組合成一個詞典。

這是我怎麼會做它,使用字典理解:

l = [{"key1":"value1"},{"key2":"value2"},{"keyn":"valuen"}] 
result = {k:v for d in l for k, v in d.iteritems()} 

print result # {'key2': 'value2', 'key1': 'value1', 'keyn': 'valuen'} 
+0

夥計,你是一個星。 – user1862895

+1

我寧願一個解決方案不要太注意字典的內容級別:未經測試:result = l.pop():for d in l:result.update(d) – guidot

1

同樣的事情,也許在一個更簡單的方式來閱讀:

result = {} 
d_list = [{"key1": "value1"}, {"key2": "value2"}, {"keyn": "valuen"}] 
for d in d_list: 
    for k, v in d.iteritems(): 
     result[k] = v 
0
a=[{1:1},{2:2},{3:3}] 

result=dict([(k,v) for x in a for k,v in x.items()]) 
print result //{1: 1, 2: 2, 3: 3}