Python고급 주제

any, all, generator expression

조건을 만족하는 값이 하나라도 있는지, 모두 만족하는지, 그리고 중간 리스트 없이 검사하는 generator expression 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

python
scores = [90, 80, 100]

has_low_score = any(score < 60 for score in scores)
all_passed = all(score >= 60 for score in scores)

설명

  • any()는 하나라도 참이면 True, all()은 모두 참이어야 True를 반환합니다.
  • 이 함수들은 반복문으로 직접 검사하는 로직을 더 짧고 의도적으로 표현하게 해 줍니다.
  • generator expression을 함께 쓰면 중간 리스트를 만들지 않고 바로 평가할 수 있습니다.
  • 조건 검사, 데이터 검증, 필터 전 확인 같은 작업에 자주 등장합니다.

짧은 예제

python
names = ["mina", "jin", "ara"]

has_short_name = any(len(name) <= 3 for name in names)
all_lowercase = all(name.islower() for name in names)

빠른 정리

함수의미
any(iterable)하나라도 참이면 참
all(iterable)모두 참이어야 참
generator expression중간 리스트 없이 순차 평가
조건 검사간결하고 의도적인 표현

공식 참고: Built-in Functions

주의할 점

any()all()은 짧고 강력하지만, 조건이 너무 복잡하면 읽기 어려워질 수 있습니다. 한 줄이 복잡해지면 먼저 조건을 함수로 분리하는 편이 더 명확합니다.