Если важен порядок элементов списка, вы можете использовать что-то вроде этого:
if sum(i != j for i, j in zip(list1, list2)) == 2:
# the two lists are equal except two elements
Если порядок не важен, а повторяющиеся элементы не имеют значения, вы также можете использовать пересечение множеств (&
) и сравните длину:
if len(set(list1) & set(list2)) == len(list1) - 2:
# the two list are equal except two elements
Если порядок не важен, но повторяющиеся элементы имеют значение, используйте тот же подход, но с collections.Counter
:
from collections import Counter
if len(Counter(list1) & Counter(list2)) == len(list1) - 2:
# the two list are equal except two elements