Подтвердить что ты не робот

Какой самый "пуфонический" способ логически объединить список логических элементов?

У меня есть список логических элементов, которые я хотел бы логически комбинировать с использованием и/или. Расширенные операции:

vals = [True, False, True, True, True, False]

# And-ing them together
result = True
for item in vals:
    result = result and item

# Or-ing them together
result = False
for item in vals:
    result = result or item

Есть ли отличные однострочные для каждого из вышеперечисленных?

4b9b3361

Ответ 1

См. all(iterable):

Возвращает True, если все элементы iterable истинны (или если iterable пусто).

И any(iterable):

Возвращает True, если любой элемент верно итеративное. Если итерабельность пуста, верните False.

Ответ 2

Лучший способ сделать это - с функциями any() и all().

vals = [True, False, True, True, True]
if any(vals):
   print "any() reckons there something true in the list."
if all(vals):
   print "all() reckons there no non-True values in the list."
if any(x % 4 for x in range(100)):
   print "One of the numbers between 0 and 99 is divisible by 4."

Ответ 3

Демонстрация ответа NullUserException.

In [120]: a
Out[120]: 
array([[ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True]], dtype=bool)

In [121]: a.all()
Out[121]: True

In [122]: b
Out[122]: 
array([[False,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True]], dtype=bool)

In [123]: b.all()
Out[123]: False

In [124]: b.any()
Out[124]: True