Ответ 1
См. all(iterable)
:
Возвращает
True
, если все элементы iterable истинны (или если iterable пусто).
Возвращает
True
, если любой элемент верно итеративное. Если итерабельность пуста, вернитеFalse
.
У меня есть список логических элементов, которые я хотел бы логически комбинировать с использованием и/или. Расширенные операции:
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
Есть ли отличные однострочные для каждого из вышеперечисленных?
См. all(iterable)
:
Возвращает
True
, если все элементы iterable истинны (или если iterable пусто).
Возвращает
True
, если любой элемент верно итеративное. Если итерабельность пуста, вернитеFalse
.
Лучший способ сделать это - с функциями 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."
Демонстрация ответа 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