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。
接下來,使用列表解析檢查計數是否相同。
將其分配給變數。
將其作為輸出顯示在控制檯上。
廣告