📜  Python – 字典中的自定义元组键求和

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

Python – 字典中的自定义元组键求和

有时,在使用Python字典时,我们可能会遇到一个问题,即我们需要对字典元组键的特定索引上的某个键执行值的组求和。这个问题是非常定制的,但可以在围绕数据处理的领域中应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用sum() + 生成器表达式
上述功能的组合可以用来解决这个问题。在此,我们使用 sum() 执行求和,并使用生成器表达式执行过滤任务。

# Python3 code to demonstrate working of 
# Custom Tuple Key Summation in Dictionary
# Using sum() + generator expression
  
# initializing dictionary
test_dict = {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K 
K = 'a'
  
# initializing index
idx = 1
  
# Custom Tuple Key Summation in Dictionary
# Using sum() + generator expression
res = sum(val for key, val in test_dict.items() if key[idx - 1] == K)
      
# printing result 
print("The grouped summation : " + str(res)) 
输出 :
The original dictionary is : {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
The grouped summation : 81

方法 #2:使用sum() + map() + lambda
上述功能的组合可以用来解决这个问题。在此,我们使用 sum() 执行求和任务,map() + lambda 用于执行条件检查任务。

# Python3 code to demonstrate working of 
# Custom Tuple Key Summation in Dictionary
# Using sum() + map() + lambda
  
# initializing dictionary
test_dict = {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K 
K = 'a'
  
# initializing index
idx = 1
  
# Custom Tuple Key Summation in Dictionary
# Using sum() + map() + lambda
res = sum(map(lambda sub: sub[1], filter(lambda ele: ele[0][idx - 1] == K,
                                                     test_dict.items())))
      
# printing result 
print("The grouped summation : " + str(res)) 
输出 :
The original dictionary is : {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
The grouped summation : 81