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

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

리스트를 다루다 보면 모든 요소가 동일한 값으로 구성되어 있는지 확인해야 하는 경우가 있습니다. 이 글에서는 Python에서 리스트의 모든 요소가 같은지 검증하는 대표적인 방법들을 예제 코드와 함께 소개합니다.

1. all() 함수 활용하기

all() 함수는 리스트의 각 요소를 첫 번째 요소와 비교한 결과를 종합합니다. 모든 비교 결과가 참(True)이면 전체 요소가 동일하다고 판단하고, 하나라도 다르면 동일하지 않은 것으로 처리합니다.

예제

listA = ['Sun', 'Sun', 'Mon']

resA = all(x == listA[0] for x in listA)

if resA:
    print("ListA의 모든 요소가 동일합니다")
else:
    print("ListA의 요소 중 일부는 동일하지 않습니다")

listB = ['Sun', 'Sun', 'Sun']
resB = all(x == listB[0] for x in listB)

if resB:
    print("ListB의 모든 요소가 동일합니다")
else:
    print("ListB의 요소 중 일부는 동일하지 않습니다")

실행 결과

ListA의 요소 중 일부는 동일하지 않습니다
ListB의 모든 요소가 동일합니다

2. count() 메서드 활용하기

이 방법은 첫 번째 요소가 리스트에 등장하는 횟수를 세어 리스트 전체 길이와 비교합니다. 모든 요소가 동일하다면 개수가 길이와 일치하고, 그렇지 않으면 일치하지 않습니다.

예제

listA = ['Sun', 'Sun', 'Mon']

resA = listA.count(listA[0]) == len(listA)

if resA:
    print("ListA의 모든 요소가 동일합니다")
else:
    print("ListA의 요소 중 일부는 동일하지 않습니다")

listB = ['Sun', 'Sun', 'Sun']
resB = listB.count(listB[0]) == len(listB)

if resB:
    print("ListB의 모든 요소가 동일합니다")
else:
    print("ListB의 요소 중 일부는 동일하지 않습니다")

실행 결과

ListA의 요소 중 일부는 동일하지 않습니다
ListB의 모든 요소가 동일합니다

3. set() 활용하기 (추가 팁)

리스트를 set(집합)으로 변환하면 중복된 값이 자동으로 제거됩니다. 따라서 변환된 집합의 길이가 1이라면 모든 요소가 동일하다는 의미입니다. 다만 빈 리스트는 집합의 길이가 0이 되므로, 필요하다면 빈 리스트 여부를 먼저 확인하는 것이 안전합니다.

예제

listC = ['Sun', 'Sun', 'Sun']

resC = len(set(listC)) == 1

print("ListC의 모든 요소가 동일합니다" if resC else "ListC의 요소 중 일부는 동일하지 않습니다")

실행 결과

ListC의 모든 요소가 동일합니다

정리

세 가지 방법 모두 간단하게 활용할 수 있습니다. 가독성과 명확성을 원한다면 all() 함수를, 성능이 중요한 큰 리스트에서는 count()나 set() 방식도 좋은 선택이 될 수 있습니다. 상황에 맞는 방법을 골라 사용해 보세요.