any() 사용하기

Tasker_Jang·2026년 3월 31일

1. 기본 개념

any()는 Python 내장 함수입니다. 이터러블의 요소 중 하나라도 참(Truthy)이면 True를 반환합니다.

any(iterable) -> bool

2. 기본 사용법

# 리스트
any([False, False, True])   # True
any([False, False, False])  # False
any([])                     # False — 빈 이터러블

# 다양한 Truthy/Falsy
any([0, "", None, 1])       # True  — 1이 Truthy
any([0, "", None, []])      # False — 모두 Falsy

3. 내부 동작 — 단락 평가 (Short-circuit)

# any()를 직접 구현하면
def any(iterable):
    for element in iterable:
        if element:
            return True   # 하나라도 True면 즉시 반환
    return False          # 끝까지 없으면 False

리스트 vs 제너레이터의 차이:

items = [False, False, True, False, False]

# 리스트 — 모든 요소를 먼저 평가한 뒤 any()에 전달
any([x > 0 for x in items])   # 5개 모두 평가

# 제너레이터 — True 나온 시점에 즉시 중단
any(x > 0 for x in items)     # 3번째에서 중단

키워드 목록이 크거나 target 계산 비용이 클수록 제너레이터 방식이 효율적입니다.


4. any() vs all()

values = [True, True, False]

any(values)   # True  — 하나라도 True
all(values)   # False — 모두 True여야 True

# all() 내부 구현
def all(iterable):
    for element in iterable:
        if not element:
            return False  # 하나라도 False면 즉시 반환
    return True

5. 자주 쓰는 패턴

words = ["apple", "banana", "cherry"]

# 특정 문자 포함 여부
any("an" in w for w in words)          # True  — "banana"

# 조건 충족 여부
any(len(w) > 6 for w in words)         # True  — "banana", "cherry"

# 딕셔너리 값 검사
data = {"a": 0, "b": 0, "c": 1}
any(v > 0 for v in data.values())      # True

# 중첩 리스트에서 특정 값 존재 여부
matrix = [[0, 0], [0, 1], [0, 0]]
any(1 in row for row in matrix)        # True

6. all()과 조합

records = [
    {"name": "Alice", "age": 30},
    {"name": "Bob",   "age": 25},
]

# 모든 레코드에 "name" 키가 있는지
all("name" in r for r in records)      # True

# 하나라도 age가 30 이상인지
any(r["age"] >= 30 for r in records)   # True

7. 핵심 요약

항목any()all()
반환 조건하나라도 Truthy모두 Truthy
빈 이터러블FalseTrue
단락 평가첫 True에서 중단첫 False에서 중단
권장 인자제너레이터 표현식제너레이터 표현식

한 줄 요약: any()는 이터러블 중 하나라도 Truthy면 즉시 True를 반환하는 단락 평가 함수로, 제너레이터 표현식과 함께 쓰면 불필요한 순회를 줄여 효율적인 조건 검사가 가능합니다.

profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글