📜  Python|常用行元素求和

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

Python|常用行元素求和

在 2 个列表的列表中找到共同元素的问题是一个很常见的问题,可以轻松处理,并且之前也已经讨论过很多次。但有时,我们需要从 N 个列表中找到共同的元素并返回它们的总和。让我们讨论可以执行此操作的某些方式。

方法 #1:使用reduce() + lambda + set() + sum()
使用上述功能的组合,只需一行即可完成此特定任务。 reduce函数可用于对所有列表进行“&”操作的函数。 set函数可用于将列表转换为集合以消除重复。执行求和的任务是使用 sum() 完成的。

# Python code to demonstrate 
# Common Row elements Summation
# using reduce() + lambda + set() + sum()
  
# initializing list of lists
test_list = [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# Common Row elements Summation
# using reduce() + lambda + set() + sum()
res = sum(list(reduce(lambda i, j: i & j, (set(x) for x in test_list))))
  
# printing result
print ("The common row elements sum is : " + str(res))
输出 :
The original list is : [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]]
The common row elements sum is : 5

方法 #2:使用map() + intersection() + sum()
map函数可用于使用 set.intersection函数将每个列表转换为要操作的集合以执行交集。这是执行此特定任务的最优雅的方式。执行求和的任务是使用 sum() 完成的。

# Python3 code to demonstrate 
# Common Row elements Summation
# using map() + intersection() + sum()
  
# initializing list of lists
test_list = [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# Common Row elements Summation
# using map() + intersection() + sum()
res = sum(list(set.intersection(*map(set, test_list))))
  
# printing result
print ("The common row elements sum is : " + str(res))
输出 :
The original list is : [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]]
The common row elements sum is : 5