Python - 矩阵中的最常见组合


当需要找到矩阵中最常见的组合时,通常同时使用简单迭代、“排序”方法和“计数器”方法。

示例

以下是对其进行演示

from collections import Counter
from itertools import combinations

my_list = [[31, 25, 77, 82], [96, 15, 23, 32]]

print("The list is :")
print(my_list)

my_result = Counter()

for elem in my_list:
   if len(elem) < 2:
      continue

   elem.sort()

   for size in range(2, len(elem) + 1):
      for comb in combinations(elem, size):
         my_result[comb] += 1

my_result = [elem for elem, my_count in my_result.items() if my_count ==
my_result.most_common(1)[0][1]]

print("The result is :")
print(my_result)

输出

The list is :
[[31, 25, 77, 82], [96, 15, 23, 32]]
The result is :
[(15, 23, 32, 96), (25, 31), (25, 82), (15, 32), (23, 32), (15, 32, 96), (25, 31, 82), (15, 23), (25, 77), (15, 23, 32), (25, 77, 82), (32, 96), (31, 77, 82), (15, 96), (31, 77), (23, 96), (25, 31, 77, 82), (31, 82), (77, 82), (23, 32, 96), (15, 23, 96), (25, 31, 77)]

说明

  • 必需的软件包已导入环境中。

  • 定义了一个列表的列表,并在控制台上显示。

  • 为变量分配了一个计数器。

  • 对列表进行迭代。

  • 加入条件,用于检查元素的长度是否小于 2。

  • 如果是,则继续执行。

  • 否则,使用“排序”方法对列表中的元素进行排序。

  • 再次迭代列表,并使用“组合”方法将特定索引处的元素增加 1。

  • 接下来,使用列表解析检查计数是否相同。

  • 将其分配给变量。

  • 将其作为输出显示在控制台上。

更新于: 2021-09-15

225 次浏览

开启您的事业

完成课程以获得认证

开始
广告
© . All rights reserved.