Python 데이터 분석을 하다 보면 하나의 숫자와 여러 개의 값을 담고 있는 리스트를 비교해야 하는 상황이 자주 발생합니다. 이번 글에서는 주어진 숫자가 리스트에 있는 모든 값보다 작은지 확인하는 방법을 소개합니다. 크게 두 가지 방식으로 구현할 수 있습니다.
1. for 루프 사용하기
가장 기본적인 방법은 리스트를 처음부터 끝까지 순회하면서 주어진 값과 각 요소를 하나씩 비교하는 것입니다. 리스트의 모든 값과 비교했을 때 조건이 한 번도 깨지지 않으면 "yes"를 출력하고, 중간에 조건을 만족하지 않는 값이 나오면 즉시 "No"를 출력한 뒤 반복을 종료합니다.
예제 코드
List = [10, 30, 50, 70, 90]
value = 95
count = 0
for i in List:
if value <= i:
result = False
print("No")
break
else:
count = count + 1
if count == len(List):
print("yes")실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
yes
위 예제에서는 95가 리스트의 최댓값인 90보다 크기 때문에 모든 비교 조건을 통과하여 "yes"가 출력됩니다.
2. all() 함수 사용하기
더 파이썬다운 방법은 내장 함수 all()을 활용하는 것입니다. all()은 반복 가능한 객체의 모든 요소가 참일 때 True를 반환하며, 마치 루프처럼 리스트의 각 요소를 주어진 값과 자동으로 비교해 줍니다. 따라서 별도의 카운터 변수나 break 로직 없이 if-else 조건문 안에서 간결하게 처리할 수 있습니다.
예제 코드
List = [10, 30, 50, 70, 90]
value = 85
if (all(x < value for x in List)):
print("yes")
else:
print("No")실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
No
이번에는 85가 리스트의 마지막 값인 90보다 작기 때문에 조건이 실패하여 "No"가 출력됩니다.
정리
for 루프는 비교 과정을 단계별로 제어할 수 있다는 장점이 있고, all() 함수는 제너레이터 표현식과 함께 사용하면 코드가 훨씬 짧고 가독성이 좋아집니다. 실무에서는 대부분 all()을 사용하는 방식이 권장되며, 필요에 따라 반대 조건(모든 값이 큰지)을 확인할 때는 any() 함수를 활용할 수도 있습니다.