Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 리스트의 모든 요소가 동일한지 확인하는 3가지 방법

프로그래밍을 하다 보면 리스트에 담긴 모든 요소가 하나의 동일한 값으로만 이루어져 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어, 어떤 조건이 전부 참인지 검증하거나 데이터의 일관성을 점검할 때 유용합니다. 이번 글에서는 Python에서 리스트의 모든 요소가 같은지 판별하는 대표적인 세 가지 방법을 예제 코드와 함께 살펴보겠습니다.

1. for 반복문 사용하기

가장 기본적인 방법은 리스트의 첫 번째 요소를 기준값으로 삼고, for 반복문을 통해 나머지 모든 요소와 하나씩 비교하는 것입니다. 비교 중 단 하나의 요소라도 첫 번째 요소와 값이 다르면 더 이상 검사를 진행할 필요가 없으므로 break로 반복문을 빠져나오고 결과는 False가 됩니다.

예제

List = ['Mon', 'Mon', 'Mon', 'Mon']
result = True

# 첫 번째 요소를 기준값으로 지정
first_element = List[0]

# 모든 요소를 첫 번째 요소와 비교
for word in List:
    if first_element != word:
        result = False
        break

if result:
    print("모든 요소가 동일합니다")
else:
    print("모든 요소가 동일하지 않습니다")

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

모든 요소가 동일합니다

2. all() 함수 사용하기

all() 함수는 iterable의 모든 요소가 참일 때 True를 반환합니다. 이를 활용하면 위에서 for 반복문으로 작성했던 비교 로직을 한 줄의 제너레이터 표현식으로 간결하게 처리할 수 있습니다.

예제

List = ['Mon', 'Mon', 'Tue', 'Mon']

# all() 함수로 모든 요소가 첫 번째 요소와 같은지 검사
result = all(element == List[0] for element in List)

if result:
    print("모든 요소가 동일합니다")
else:
    print("모든 요소가 동일하지 않습니다")

리스트에 'Tue'라는 다른 값이 포함되어 있으므로, 위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

모든 요소가 동일하지 않습니다

3. count() 메서드 사용하기

Python 리스트의 count() 메서드는 특정 요소가 리스트 안에 몇 번 등장하는지 개수를 반환합니다. 만약 리스트의 모든 요소가 같은 값이라면, 첫 번째 요소의 등장 횟수(count)가 리스트 전체 길이(len)와 일치해야 합니다. 이 성질을 이용해 아래와 같이 간단히 판별할 수 있습니다.

예제

List = ['Mon', 'Mon', 'Mon', 'Mon']

# count() 결과와 len() 결과가 일치하는지 비교
result = List.count(List[0]) == len(List)

if result:
    print("모든 요소가 동일합니다")
else:
    print("모든 요소가 동일하지 않습니다")

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

모든 요소가 동일합니다

방법별 특징 정리

  • for 반복문: 로직이 명확하고 직관적이지만 코드가 상대적으로 길어집니다. 불일치를 발견하는 즉시 중단할 수 있어 효율적입니다.
  • all(): 가장 파이써닉(Pythonic)하고 간결한 방법입니다. 내부적으로 불일치를 발견하면 평가를 중단하므로 성능도 좋습니다. 단, 빈 리스트에는 True를 반환한다는 점에 유의해야 합니다.
  • count(): 코드가 매우 짧지만, 불일치 요소가 뒤쪽에 있더라도 끝까지 개수를 세므로 큰 리스트에서는 앞의 두 방법보다 느릴 수 있습니다. 또한 빈 리스트에 적용하면 인덱스 오류(IndexError)가 발생하므로 사전에 길이를 확인하는 것이 안전합니다.

상황에 따라 적절한 방법을 선택하면 되며, 일반적으로는 간결함과 가독성이 뛰어난 all() 방식이 가장 널리 사용됩니다.