2017-05-17 139 views
0

比方說,你有兩個不同的字典。比較兩個詞典按鍵,並創建列表值詞典在Python

info_stored = {'a' : 0, 'b' : 2, 'c' : 15} 

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14} 

我想比較這兩個字典,以確定是否匹配鍵。在這個例子中只有'a'是常見的。

for key in info_stored: 
    if key in log_stored: 

我想創建一個新的字典與共同的關鍵和從該公共關鍵字的值列表。

common_stored = {'a' : [0, 1]} 
+1

你的代碼幾乎做到了。你怎麼了?由於您可以提取字典鍵值並創建一個列表。 – mootmoot

回答

2

這樣如何:

info_stored = {'a' : 0, 'b' : 2, 'c' : 15} 

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14} 

common_stored = {k: [] for k in info_stored if k in log_stored} 

然後:

for key in common_stored: 
    common_stored[k].extend([info_stored[k], log_stored[k]]) 
print(common_stored) # common_stored = {'a' : [0, 1]} 

第一步是關於創建與公共元素作爲鍵和空列表作爲值的字典。

最後,我們修改原有基礎上http://stardict.sourceforge.net/Dictionaries.php下載的內容,這些空列表。

你甚至可以結合這兩個步驟在一個字典解析如下:

common_stored = {k: [info_stored[k], log_stored[k]] for k in info_stored if k in log_stored} 
+0

就是這樣。非常感謝你。我發現一個變量的解決方案,但我一直在寫我的字典裏,如果有其他的匹配變量。這使它看起來很容易,而且我認爲它是最適合的。 – Nathan

1
info_stored = {'a' : 0, 'b' : 2, 'c' : 15} 
log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14} 

common_stored = {} 

# Traverse through info_stored dictionary 
for key, val in info_stored.items(): 
    # Check for key in log_stored dictionary, if found add it to common_stored 
    if key in log_stored: 
     common_stored[key] = [val, log_stored[key]] 

common_stored 
{'a': [0, 1]} 
1

一個簡單的解決辦法是這樣的:

info_stored = {'a' : 0, 'b' : 2, 'c' : 15} 

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14} 

result={} 


for key in info_stored : 
    if key in log_stored : 
    result[key]=[ info_stored[key], log_stored[key]] 

print (result) 
相關問題