Python - 矩阵中最常见的组合
当需要在矩阵中找到最常见的组合时,可以使用简单的迭代以及“排序”方法和“计数器”方法。
示例
下面是相同的演示
from collections import Counter from itertools import combinations my_list = [[31, 25, 77, 82], [96, 15, 23, 32]] print("名单是:") 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("结果是:") print(my_result)输出结果
名单是: [[31, 25, 77, 82], [96, 15, 23, 32]] 结果是: [(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。
如果是,则继续执行。
否则,列表中的元素将使用'sort'方法进行排序。
列表再次迭代,“组合”方法用于将特定索引处的元素增加1。
接下来,使用列表理解来检查计数是否相同。
这被分配给一个变量。
它在控制台上显示为输出。