簡體   English   中英

合並共享相同鍵的兩個詞典:值

[英]Merge Two Dictionaries that Share Same Key:Value

我知道這可以用列表來完成,但我只想弄清楚如何用字典來做這件事。

基本上,它會像這樣:

dict1 = {'a': 10, 'b': 12, 'c': 9}
dict2 = {'a': 10, 'b': 3, 'c': 9}

def intersect(dict1, dict2):
    combinDict = dict()


....
print(combinDict)
{'a': 10, 'c':9}

所以我只想將具有相同值的鍵添加到新詞典中。

有幫助嗎?

你想要項目的交集

dict1 = {'a': 10, 'b': 12, 'c': 9}
dict2 = {'a': 10, 'b': 3, 'c': 9}

print dict(dict1.viewitems() & dict2.items())
{'a': 10, 'c': 9}

對於python 3,您只想使用項目:

 dict(dict1.items() & dict2.items())

dict1.items() & dict2.items()返回一組dict1.items() & dict2.items()的鍵/值對:

In [4]: dict1.viewitems() & dict2.items()
Out[4]: {('a', 10), ('c', 9)}

然后我們簡單地調用dict構造函數。

另一種方法是使用字典理解:

In [1]: dict1 = {'a': 10, 'b': 12, 'c': 9}

In [2]: dict2 = {'a': 10, 'b': 3, 'c': 9}

In [3]: {key: dict1[key] for key in dict1 if dict1[key] == dict2.get(key)}
Out[3]: {'a': 10, 'c': 9}

這應該是蠅頭纖細更快一點,雖然這不會經常字典無所謂。

暫無
暫無

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

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