리스트에 포함된 고유한 값의 개수를 구해야 하는 경우, 반복문과 append 메서드를 함께 사용하면 간단하게 해결할 수 있습니다. 원본 리스트를 하나씩 순회하면서 아직 확인하지 않은 요소만 별도의 리스트에 추가하고, 새로운 요소가 발견될 때마다 카운트를 증가시키는 방식입니다.
예제
아래는 실제 동작 과정을 보여주는 예제 코드입니다.
my_list = [12, 33, 33, 54, 84, 16, 16, 16, 58]
print("The list is :")
print(my_list)
filtered_list = []
elem_count = 0
for item in my_list:
if item not in filtered_list:
elem_count += 1
filtered_list.append(item)
print("The result is :")
print(elem_count)출력
The list is : [12, 33, 33, 54, 84, 16, 16, 16, 58] The result is : 6
코드 설명
먼저 리스트를 정의하고 콘솔에 출력합니다.
고유 값을 저장할 빈 리스트를 하나 선언합니다.
고유 값의 개수를 세기 위한 정수 변수를 0으로 초기화합니다.
반복문을 사용해 원본 리스트의 모든 요소를 순회합니다.
현재 요소가 두 번째 리스트에 존재하지 않는다면, 카운트를 1 증가시킵니다.
동시에 해당 요소를 빈 리스트에 추가(
append)하여 중복 검사 대상으로 기록합니다.모든 순회가 끝나면 최종 결과값이 콘솔에 출력됩니다.
참고: 더 간단한 방법
파이썬에서는 set() 함수를 활용하면 위 과정을 한 줄로 처리할 수도 있습니다. 집합(set)은 중복을 허용하지 않는 자료형이므로, 다음과 같이 작성하면 동일한 결과를 얻을 수 있습니다.
result = len(set(my_list)) print(result) # 6
두 방법 모두 유효하지만, 데이터 양이 많은 경우 set()을 사용하는 방식이 더 효율적입니다. 반면 학습 목적으로 중복 제거 로직의 동작 원리를 이해하고 싶다면 첫 번째 반복문 방식이 도움이 됩니다.