Питонический способ проверки, выполняется ли условие для любого элемента списка


у меня есть список в Python, и я хочу проверить, если все элементы отрицательные. У спекмана есть has() метод для списков, которая работает:

x: list of uint;
if (x.has(it < 0)) {
    // do something
};

здесь it - Это ключевое слово Specman, сопоставленное каждому элементу списка по очереди.

Я нахожу это довольно элегантно. Я посмотрел через документация Python и не смог найти ничего подобного. Лучшее, что я мог придумать было:

if (True in [t < 0 for t in x]):
    # do something

Я нахожу это довольно неизящно. Есть лучший способ сделать это в Python?

3 80

3 ответа:

любой():

if any(t < 0 for t in x):
    # do something

кроме того, если вы собираетесь использовать "True in ...", сделайте это выражение генератора, чтобы оно не занимало o(n) памяти:

if True in (t < 0 for t in x):

использовать any().

if any(t < 0 for t in x):
    # do something

Python имеет встроенный any ()