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

Python으로 정수 리스트에서 중복 요소 찾아 출력하기

이 글에서는 숫자 리스트에 포함된 모든 중복 값을 출력하는 방법을 알아봅니다. 즉, 리스트 안에서 두 번 이상 등장하는(고유하지 않은) 숫자들을 모두 찾아내는 것이 목표입니다.

예제

입력: given_list = [3, 6, 9, 12, 3, 30, 15, 9, 45, 36, 12]
출력: desired_output = [3, 9, 12]

입력: given_list = [-27, 4, 29, -27, -2, -99, 123, 499, -99]
출력: desired_output = [-27, -99]

다음은 주어진 리스트에서 중복 요소를 찾아내는 Python 코드입니다.

lst = [3, 6, 9, 12, 3, 30, 15, 9, 45, 36, 12, 12]
dupItems = []
uniqItems = {}
for x in lst:
    if x not in uniqItems:
        uniqItems[x] = 1
    else:
        if uniqItems[x] == 1:
            dupItems.append(x)
        uniqItems[x] += 1
print(dupItems)

실행 결과

[3, 9, 12]

코드 동작 원리

이 코드의 핵심 아이디어는 다음과 같습니다.

  • uniqItems: 각 숫자가 몇 번 등장했는지 개수를 저장하는 딕셔너리입니다.
  • dupItems: 중복으로 확인된 숫자를 담는 리스트입니다.
  • 리스트를 순회하면서 처음 만나는 숫자는 딕셔너리에 1로 기록합니다. 이미 존재하는 숫자이면서 등장 횟수가 정확히 1일 때만 중복 리스트에 추가하므로, 같은 숫자가 세 번 이상 나와도 결과에는 한 번만 포함됩니다.

위 프로그램은 정수 리스트뿐만 아니라 문자열 등 다른 자료형에도 동일하게 적용할 수 있습니다.

입력: given_list = ['abc', 'def', 'raj', 'zack', 'abc', 'raj']
출력: output_returned = ['abc', 'raj']