Питонический способ проверки, выполняется ли условие для любого элемента списка
у меня есть список в 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 ответа:
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 ()