Другие ответы здесь предполагают, что списки , соответствующие , расположены в том же порядке. Вот решение, которое не работает:
list1 = [['X', '1', 'P'], ['D', '2', 'Y']]
list2 = [['X', '1', 'Y'], ['Y', '2', 'H'], ['T', '6', 'E']]
list3 = [i for i in list1 if tuple(i[:2]) in [tuple(i[:2]) for i in list2]]
print(list3)
Вывод:
[['X', '1', 'P']]
Чтобы сделать вышеизложенное более эффективным, вы можете кэшировать переменную в списке внутри условного выражения списка
list1 = [['X', '1', 'P'], ['D', '2', 'Y']]
list2 = [['X', '1', 'Y'], ['Y', '2', 'H'], ['T', '6', 'E']]
list2_tuples = set(tuple(i[:2]) for i in list2)
list3 = [i for i in list1 if tuple(i[:2]) in list2_tuples]
print(list3)
Выход:
[['X', '1', 'P']]