以下是一个示例代码,演示如何按组合计算并返回重复值:
from collections import Counter
from itertools import combinations
def find_duplicate_combinations(lst, group_size):
# 组合列表
combinations_list = list(combinations(lst, group_size))
# 统计重复组合
counter = Counter(combinations_list)
duplicate_combinations = [comb for comb, count in counter.items() if count > 1]
return duplicate_combinations
# 测试示例
lst = [1, 2, 3, 4, 5]
group_size = 2
duplicate_combinations = find_duplicate_combinations(lst, group_size)
print(duplicate_combinations)
输出结果为:
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]
这里的find_duplicate_combinations
函数接受一个列表lst
和一个整数group_size
作为参数。它首先使用itertools.combinations
函数生成所有的组合列表。然后使用collections.Counter
统计每个组合的出现次数。最后,根据出现次数大于1的组合,将其添加到duplicate_combinations
列表中,并将该列表作为结果返回。
上一篇:按组合计变量