개요
이번 게시글에서는 파이썬에서 조건 검사를 간결하고 효율적으로 처리할 수 있게 해주는 내장 함수인 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("하나 이상의 값이 거짓입니다.")
결과
하나 이상의 값이 거짓입니다.