📜  Python|合并具有相同键的两个字典的值

📅  最后修改于: 2022-05-13 01:55:48.039000             🧑  作者: Mango

Python|合并具有相同键的两个字典的值

字典是一个无序、可变和索引的集合。在Python中,字典是用大括号编写的,它们有键和值。它广泛用于日常编程、Web 开发和机器学习。组合字典是字典操作中非常常见的任务。

让我们看看如何组合具有相同键的两个字典的值。方法#1:使用Counter
Counter 是字典的一个特殊子类,在大多数情况下执行与字典相同的行为。

# Python code to demonstrate combining 
# two dictionaries having same key
  
from collections import Counter
  
# initialising dictionaries
ini_dictionary1 = Counter({'nikhil': 1, 'akash' : 5,
                     'manjeet' : 10, 'akshat' : 15})
ini_dictionary2 = Counter({'akash' : 7, 'akshat' : 5,
                                          'm' : 15})
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using Counter
final_dictionary = ini_dictionary1 + ini_dictionary2
  
# printing final result
print ("final dictionary", str(final_dictionary))
输出:


方法 #2:使用dict() and items
此方法适用于Python版本 2。

# Python code to demonstrate combining 
# two dictionaries having same key
  
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5,
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5,
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict() and items()
final_dictionary = dict(ini_dictionary1.items() + ini_dictionary2.items() +
                    [(k, ini_dictionary1[k] + ini_dictionary2[k])
                    for k in set(ini_dictionary2)
                    & set(ini_dictionary1)])
  
# printing final result
print ("final dictionary", str(final_dictionary))
输出:


方法#3:使用dict理解和set

# Python code to demonstrate combining 
# two dictionaries having same key
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5, 
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5, 
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict comprehension and set
final_dictionary =  {x: ini_dictionary1.get(x, 0) + ini_dictionary2.get(x, 0)
                    for x in set(ini_dictionary1).union(ini_dictionary2)}
  
# printing final result
print ("final dictionary", str(final_dictionary))
输出: