Profile picture

[Python] any(): 효율적인 조건 검사를 위한 필수 도구

JaehyoJJAng2024년 06월 04일

개요

이번 게시글에서는 파이썬에서 조건 검사를 간결하고 효율적으로 처리할 수 있게 해주는 내장 함수인 any()에 대해 기록해보려고 한다.


1. any() 함수란?

any() 함수는 반복 가능한(iterable) 객체 의 요소 중 하나라도 참(True) 인 값이 있으면 True를 반환하고,

모든 요소가 거짓(False) 이면 False를 반환하는 파이썬의 내장 함수이다.


사용 구문

  • iterable: 리스트, 튜플, 집합, 문자열 등 반복 가능한 객체
any(iterable)

2. any() 함수의 동작 원리

any() 함수는 다음과 같은 방식으로 동작한다.

  • 순회 검사: 전달된 iterable의 요소를 처음부터 끝까지 순회한다.
  • 첫 번째 참 발견 시 종료: 순회 중 첫 번째로 참인 값을 발견하면 즉시 True를 반환하고 함수가 종료된다.
  • 모두 거짓일 경우: 모든 요소를 검사한 후에도 참인 값이 없으면 False를 반환한다.

3. any() 함수를 사용하는 이유

  • 간결한 코드: 여러 조건 중 하나라도 만족하는지를 확인할 때 복잡한 if문 대신 간단하게 표현이 가능함.
  • 효율성: 첫 번째로 참인 값을 찾으면 즉시 종료되므로, 불필요한 연산을 줄일 수 있음

4. 다양한 예제로 배우는 any() 함수

4-1. 리스트에서 참인 값이 있는지 확인

values = [0, None, False, '', [], {}, 1]

if any(values):
    print("리스트에 참인 값이 있습니다.")
else:
    print("리스트의 모든 값이 거짓입니다.")

결과

리스트에 참인 값이 있습니다.
  • 1이 참(True)이므로 any(values)True를 반환함.

4-2. 문자열에서 특정 키워드가 포함되어 있는지 확인

keywords = ['제니', '경환']
text = "제니, 데뷔 8년 만에 겹경사 터졌다…'숨멎' 만드는 청순 섹시 란제리룩"

if any(keyword in text for keyword in keywords):
    print("텍스트에 키워드가 포함되어 있습니다.")
else:
    print("텍스트에 키워드가 포함되어 있지 않습니다.")

결과

텍스트에 키워드가 포함되어 있습니다.
  • keywords 리스트의 요소 중 '제니'text에 포함되어 있으므로 any() 함수는 True를 반환한다.

4-3. 파일 리스트에서 이미지 파일이 있는지 확인

files = ['document.pdf', 'image.png', 'script.py', 'notes.txt']
extensions = ['.jpg', '.png', '.gif']

if any(file.endswith(ext) for file in files for ext in extensions):
    print("이미지 파일이 있습니다.")
else:
    print("이미지 파일이 없습니다.")

결과

이미지 파일이 있습니다.
  • 'image.png' 파일이 .png 확장자로 끝나므로 any() 함수는 True를 반환한다.

5. all() 함수와의 비교

  • all() 함수: iterable의 모든 요소가 참이면 True를 반환하고, 하나라도 거짓이면 False를 반환한다.
values = [True, True, False]

if all(values):
    print("모든 값이 참입니다.")
else:
    print("하나 이상의 값이 거짓입니다.")

결과

하나 이상의 값이 거짓입니다.

Loading script...