В комментарии Мухаммед попросил более общий c метод поиска. Вот один из способов сделать это.
from itertools import zip_longest
F = [(1,2,1), (2,3,0), (1,2,4)]
def search_2d_list(needle, haystack):
def equal_or_none(row):
return all(q is None or q == i for q, i in zip_longest(needle, row))
return any(equal_or_none(row) for row in haystack)
Результаты с терминала
>>> search_2d_list((1,), F)
True
>>> search_2d_list((1,2), F)
True
>>> search_2d_list((1,2,1), F)
True
>>> search_2d_list((1,2,3), F)
False
>>> search_2d_list((2,2,3), F)
False
>>> search_2d_list((2,2), F)
False
>>> search_2d_list((2,None,2), F)
False
>>> search_2d_list((2,None,0), F)
True