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

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

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

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

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

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

Я считаю это довольно неэлегантным. Есть ли лучший способ сделать это в Python?

Ответ 1

any():

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

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

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

Ответ 2

Используйте any().

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

Ответ 3

Python имеет встроенную функцию any() для этой цели.