Если вы не хотите использовать NumPy, вы можете использовать all
и составить список.zip
сгруппирует элементы по индексу, а затем all
будет True
, если ни один элемент не будет None
, и наоборот
lst = [[23,12,23,1,32,None,12,None],
[None,456,2,None,4,545,56,12],
[435,None,4,3,None,44,12,23] ]
answer = [int(all(sub)) for sub in zip(*lst)]
# [0, 0, 1, 0, 0, 0, 1, 0]
Решение NumPy : lst==None
даст матрицу True
и False
.Затем суммируйте их (операция ИЛИ) по строке и затем вычтите из 1, чтобы получить окончательный ответ.
lst = np.array([[23,12,23,1,32,None,12,None],
[None,456,2,None,4,545,56,12],
[435,None,4,3,None,44,12,23] ])
answer = 1-(lst==None).sum(axis=0)