Как проверить, является ли какой-либо элемент None, или пустой массив, или False в итерируемом массиве Python (исключая нули)? - PullRequest
1 голос
/ 30 сентября 2019

Существует список:

x = [5, "ce", 0, (32, "a")]

Он не содержит ни None, ни пустого массива, ни элемента False, поэтому должен возвращать True.

0 не должен считаться пустым объектом.

y = [5, "ce", 0,, "", (32, "a")]

Содержит пустую строку, поэтому должен возвращать False.

Как бы вы это сделалисамым быстрым способом?

1 Ответ

2 голосов
/ 30 сентября 2019

Используйте встроенный all:

>>> all(e not in [None, []] and e is not False for e in [5, "ce", 0, (32, "a")])
True
>>> all(e not in [None, []] and e is not False for e in [5, "ce", 0, 0, (32, "a")])
False

Я заметил, что при использовании e not in [None, [], False] возникла проблема, поскольку 0 in [None, [], False] выдавал True.

...