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

Python 딕셔너리에서 고유한 값만 추출하는 방법

Python 딕셔너리에서 고유한 값 추출하기

파이썬에서 딕셔너리에 저장된 여러 리스트 값들 사이에서 중복을 제거하고 고유한(unique) 값만 추출해야 하는 경우가 종종 있습니다. 이럴 때는 sorted 메서드와 컴프리헨션(comprehension) 문법을 활용하면 매우 간결하게 해결할 수 있습니다.

아래는 실제 동작 예시입니다.

예제 코드

my_dict = {'hi' : [5,3,8, 0],
   'there' : [22, 51, 63, 77],
   'how' : [7, 0, 22],
   'are' : [12, 11, 45],
   'you' : [56, 31, 89, 90]}

print("The dictionary is : ")
print(my_dict)

my_result = list(sorted({elem for val in my_dict.values() for elem in val}))

print("The unique values are : ")
print(my_result)

출력 결과

The dictionary is :
{'hi': [5, 3, 8, 0], 'there': [22, 51, 63, 77], 'how': [7, 0, 22], 'are': [12, 11, 45], 'you': [56, 31, 89, 90]}
The unique values are :
[0, 3, 5, 7, 8, 11, 12, 22, 31, 45, 51, 56, 63, 77, 89, 90]

동작 원리 설명

  • 먼저 리스트를 값으로 가지는 딕셔너리를 정의하고, 이를 콘솔에 출력합니다.

  • .values() 메서드를 사용하여 딕셔너리에 저장된 모든 값(각 리스트)에 접근합니다.

  • 중괄호 { }를 사용한 집합(set) 컴프리헨션으로 모든 요소를 하나씩 순회하며 수집합니다. 집합은 중복을 허용하지 않기 때문에 이 과정에서 중복된 값이 자동으로 제거됩니다.

  • sorted() 함수로 요소들을 오름차순 정렬한 뒤, list()로 변환하여 변수에 할당합니다.

  • 최종적으로 고유한 값들이 담긴 정렬된 리스트를 콘솔에 출력합니다.

핵심 포인트

이 기법의 핵심은 집합 컴프리헨션입니다. 이중 for 반복문을 통해 딕셔너리의 모든 리스트를 순회하면서 개별 요소를 집합에 담으면, 파이썬이 자동으로 중복을 걸러줍니다. 별도의 조건문이나 복잡한 로직 없이 한 줄의 코드로 중복 제거와 정렬까지 처리할 수 있어, 데이터 전처리나 통계 작업 시 유용하게 활용됩니다.