📜  Python|矩阵中的非重复值求和

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

Python|矩阵中的非重复值求和

有时我们需要在一个列表中找到唯一的值,这比较容易,它的总和在前面已经讨论过了。但是我们也可以得到一个矩阵作为输入,即一个列表列表,在本文中讨论如何在其中找到唯一性。让我们看看可以实现这一目标的某些方法。

方法 #1:使用set() + list comprehension + sum()
set函数可用于将单个列表转换为非重复元素列表,列表推导用于迭代每个列表。执行求和的任务是使用 sum() 执行的。

# Python3 code to demonstrate
# Non-Repeating value Summation in Matrix
# set() + list comprehension + sum()
  
# initializing matrix 
test_matrix = [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
  
# printing the original matrix
print ("The original matrix is : " + str(test_matrix))
  
# using set() + list comprehension + sum()
# Non-Repeating value Summation in Matrix
res = sum(list(set(i for j in test_matrix for i in j)))
  
# printing result
print ("Unique values summation in matrix are : " + str(res))
输出 :
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Unique values summation in matrix are : 15

方法#2:使用chain() + set() + sum()
chain函数执行与列表推导式执行的任务类似的任务,但速度更快,因为它使用迭代器进行内部处理,因此速度更快。执行求和的任务是使用 sum() 执行的。

# Python3 code to demonstrate
# Non-Repeating value Summation in Matrix
# chain() + set() + sum()
from itertools import chain
  
# initializing matrix 
test_matrix = [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
  
# printing the original matrix
print ("The original matrix is : " + str(test_matrix))
  
# using chain() + set() + sum()
# Non-Repeating value Summation in Matrix
res = sum(list(set(chain(*test_matrix))))
  
# printing result
print ("Unique values summation in matrix are : " + str(res))
输出 :
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Unique values summation in matrix are : 15