如果我从您的问题中理解的是正确的,则以下代码将解决您的问题:
SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)]from collections import Counterdef get_new_list(a, pos): # Check if any element in pos is > than the length of the tuples if any(k >= len(min(SS1, key=lambda x: len(x))) for k in pos): return for k in a: yield tuple(k[j] for j in pos)def elm_counter(elm): if not len(elm): return c = Counter(elm) for k, v in c.items(): if v > 0: print(k, v)elm = list(get_new_list(SS1, (0, 2, 4)))elm_counter(elm)print('---')elm = list(get_new_list(SS1, (1, 2, 4)))elm_counter(elm)输出:
(1, 3, 5) 1(1, 3, 6) 2(1, 4, 6) 2(2, 4, 6) 1---(2, 3, 6) 2(2, 3, 5) 1(3, 4, 6) 2(2, 4, 6) 1



