Python как проверить на отсутствие элементов в списке
a = [[['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]], [['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]]]
Существует ли более удобный способ задать условие на отсутствие в подсписках [['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]] или в [['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]] списков, у которых первый элемент соответствует определенному значению. А если хоть один из списков содержит такой элемент в индексе 0, то сделать определенное действие. Надеюсь понятно задал вопрос)) Сейчас я делаю это вот так, но такое кажется очень громоздким:
t1 = []
t2 = []
for i in a:
count = 0
for j in i:
if j[0] == 1:
t1.append(j[1])
t2.append(j[2])
else:
count += 1
if count == len(i):
t1.append(0)
t2.append(0)
print(t1)
print(t2)
То есть если вдруг в списке не встречается ни одного списка, у которого 1 элемент равен 1, то в финальный список нужно добавить 0
Ответы (1 шт):
насчет действий не скажу, проверить можно так:
a = [[['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]], [['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]]]
for lst in a:
value = all(map(lambda x: x[0] != 1, lst))
т.е в списке не должно быть подсписков, которые бы начинались с 1, если я правильно все понял. в value будет True или False, что значит выполняется ли условие или нет(для каждого списка в a), осталось прикрутить сюда проверку value..