Посчет в списке кортежей элементов из списка

Имеется список кортежей поризвольной длины, сформированный itertools.combinations. Как пример:

res = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
res = [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

Имеется список index, как пример:

index = [1, 2]
index = [1, 2, 4]

Требуется подсчитать количество совпадений из списка в списке кортежей. Достаточно совпадения одного числа, второе считать не надо. Как пример:

res = [(1, 2),...
index = [1, 2]

считается как count += 1 Я написал вот такой костыль:

for turples in combination:
marker = True
index_list = 0
while marker:
    if index[index_list] in turples:
        count += 1
        marker = False
    else:
        index_list += 1
        if index_list >= len(index):
            marker = False

Можно ли сделать это красивее и правильнее?


Ответы (1 шт):

Автор решения: CrazyElf

Если правильно понимаю смысл задачи, то так:

print(sum(bool(set(t) & set(index)) for t in res))
→ Ссылка