У меня есть список кортежей:
my_list = [(1,2),(2,3),(3,4),(4,5),(5,6),(7,8)]
и список значений, которые я хочу исключить, которые имеют формат:
reference_list = [(2,20),(3,46),(4,918)]
Значение, которое я хочу исключить:первый из пары.(Значение 20, 46, 918 не имеет значения)
Так что я хотел бы вернуть список кортежей, которые не содержат ни одного из 2,3, 4 значений.
Ожидаемый результат:
[(5,6),(7,8)]
(поскольку все остальные содержат одно или несколько значений 2, 3 или 4)
Что я пробовал:
[p for p in my_list if p[0] not in [v[0] for v in reference_list] and p[1] not in [v[0] for v in reference_list]]
Я проверяю, нет ли первого или второго значения пары в списке v [0] списка ссылок.
Это работает, но я ищу болеекраткий / питонический способ, если есть.Идеально расширяемый (без простого добавления условий, таких как p [2] нет в списке и p [3] нет в списке и.