Python - 检查矩阵行中的相似元素

当需要检查矩阵行中的相似元素时,定义了一种以矩阵为参数的方法。map 方法用于将矩阵转换为元组。矩阵值被迭代,如果频率大于 1,它会显示在控制台上。

示例

下面是相同的演示

from collections import Counter
def find_dupes(my_matrix):
   my_matrix = map(tuple,my_matrix)

   freq_dict = Counter(my_matrix)

   for (row,freq) in freq_dict.items():
      if freq>1:
         print (row)

my_matrix = [[1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [1, 0, 1, 1, 0, 0],
         [1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 1, 0, 0, 1]]
print("矩阵是:")
print(my_matrix)

print("结果是:")
find_dupes(my_matrix)
输出结果
矩阵是:
[[1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [1, 0, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 1, 0, 0, 1]]
结果是:
(1, 1, 0, 1, 0, 1)
(0, 0, 1, 0, 0, 1)

解释

  • 导入所需的包。

  • 定义了一个名为“find_dupes”的方法,它将矩阵作为参数。

  • 'map' 方法用于将矩阵转换为元组。

  • counter 方法用于获取矩阵中每个值的计数。

  • 这存储在字典中。

  • 字典项被迭代。

  • 如果任何元素的频率大于 1,则显示在控制台上。

  • 在该方法之外,定义了一个矩阵(技术上是一个列表列表)并显示在控制台上。

  • 通过传递所需的参数来调用该方法。

  • 结果显示在控制台上。