collections.Counter
и itertools.chain
будут полезны.
import random
source = [i for i in range(1, 43)]
def my_random_list():
return sorted(random.sample(source, 6))
random_lists = [my_random_list() for _ in range(10)]
print(random_lists)
Вот 10 случайных списков (по 6 в каждом).
>>> [[2, 4, 10, 18, 20, 30], [4, 12, 13, 19, 21, 27], [10, 11, 18, 26, 32, 33], [4, 11, 12, 17, 38, 42], [12, 22, 28, 38, 40, 41], [2, 11, 22, 30, 35, 36], [4, 6, 22, 24, 32, 34], [1, 3, 5, 25, 31, 33], [25, 29, 31, 32, 33, 35], [12, 16, 28, 31, 37, 41]]
Затем вы можете сосчитать.
from collections import Counter
from itertools import chain
counter = Counter(chain(*random_lists))
print(counter)
>>> Counter({4: 4, 12: 4, 11: 3, 32: 3, 33: 3, 22: 3, 31: 3, 2: 2, 10: 2, 18: 2, 30: 2, 38: 2, 28: 2, 41: 2, 35: 2, 25: 2, 20: 1, 13: 1, 19: 1, 21: 1, 27: 1, 26: 1, 17: 1, 42: 1, 40: 1, 36: 1, 6: 1, 24: 1, 34: 1, 1: 1, 3: 1, 5: 1, 29: 1, 16: 1, 37: 1})
И отфильтруйте счетчик с пониманием.
results = [k for k, v in counter.items() if v >= 2]
print(results)
>>> [2, 4, 10, 18, 30, 12, 11, 32, 33, 38, 22, 28, 41, 35, 25, 31]