Python|矩阵中的唯一值
有时我们需要在列表中找到唯一值,这比较容易,前面已经讨论过了。但是我们也可以得到一个矩阵作为输入,即一个列表列表,在本文中讨论如何在其中找到唯一性。让我们看看可以实现这一目标的某些方法。
方法 #1:使用set()
+ 列表推导
set函数可用于将单个列表转换为非重复元素列表,列表推导用于迭代每个列表。
# Python3 code to demonstrate
# checking unique values in matrix
# set() + list comprehension
# 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
# for checking unique values in matrix
res = list(set(i for j in test_matrix for i in j))
# printing result
print ("Unique values in matrix are : " + str(res))
输出:
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Unique values in matrix are : [1, 2, 3, 4, 5]
方法#2:使用chain() + set()
chain函数执行与列表推导式执行的任务类似的任务,但速度更快,因为它使用迭代器进行内部处理,因此速度更快。
# Python3 code to demonstrate
# checking unique values in matrix
# chain() + set()
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()
# for checking unique values in matrix
res = list(set(chain(*test_matrix)))
# printing result
print ("Unique values in matrix are : " + str(res))
输出:
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]]
Unique values in matrix are : [1, 2, 3, 4, 5]