Вы должны использовать set
здесь:
In [152]: X = [["a","?","?","?","?","?","?"],["?","b","?","?","?","?","?"],["?","?","?","?","?","?","?"]]
In [153]: [l for l in X if set(l) != {"?"}]
Out[153]: [['a', '?', '?', '?', '?', '?', '?'], ['?', 'b', '?', '?', '?', '?', '?']]
set(l)
получает уникальные значения списка и делает из него set
, достаточно сравнить результирующий набор с {"?"}
, так как вы хотите удалить список со всеми ?
s.