그래서 목록에있는 모든 항목이 참으로 평가 될 때만 상태가되기를 원합니다.Python의 불리언 목록에 최소/최대를 사용하고 있습니까?
def foo():
# do something
def bar():
# do something
def baz():
# do something
fncs = [foo, bar, baz]
if <every element in [fnc() for fnc in fncs] evaluates to true>:
# do something
나는 확실히이 작업을 수행 할 수 있습니다 알고
:
all_true = True
for fnc in fncs:
if not fnc():
all_true = False
if all_true:
# do something
그러나이의 예는 (설명하는 내 상황이지만 쉽게 실제로)를 부울을 반환하는 함수의 목록과 같은 수 있습니다 이 빈약 한 형태 인 경우, 궁금 : 또는
if min([fnc() for fnc in fncs]):
# do something
내가 지능형리스트 동안 모든 거짓 요소를 선택하고 목록이 점유되어 있는지 확인을 시도 할 수 있습니다 (이 때문에 작동 첫 번째는 가장 쉬운 동안 나는 "분"같은 느낌
if not [None for fnc in fncs if not fnc()]:
# do something
마지막 방법보다 훨씬 깨끗하고 : 편곡이 목록은 부울 (편곡)의 경우에만) 편곡이 비어있는 경우 False를 반환 초보자를 이해하기 위해서는 무슨 일이 일어나는지 분명해야합니다. 나는 번갈아 앨리어싱을 통해 명확하게 수 :
all_true = min
if all_true([fnc() for fnc in fncs]):
# do something
나는뿐만 아니라이 작업을 수행하는 다른 방법을 놓친 확신합니다. 어떤 방법이 가장 바람직한지 궁금하네요.
도움 주셔서 감사합니다.
대부분의 언어가 목록에있는 모든 항목이 조건을 만족하는 경우 확인하는'every' 기능을 가지고있다. 나는 파이썬이 그러한 기능을 가지고 있다고 상상한다. – Carcigenicate
iterable의 모든 것이 참인지를 알기 위해서는'all' 함수를 사용하십시오. –
iterable의 항목 중 하나라도 true인지를 확인하는'any'가 있습니다. –