딕셔너리를 다룰 때 딕셔너리에는 중복 값이 있지만 분명히 키는 고유한 상태를 유지하는 상황을 만날 수 있습니다. 이 기사에서는 이를 달성하는 방법을 살펴보겠습니다.
키와 값 교환
우리는 키를 사전의 값과 교환한 다음 주어진 키와 관련된 값을 계속 추가합니다. 이렇게 하면 중복 값이 뭉쳐지고 결과로 나오는 새 사전에서 이를 볼 수 있습니다.
예
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3} print("Given Dictionary :", dictA) k_v_exchanged = {} for key, value in dictA.items(): if value not in k_v_exchanged: k_v_exchanged[value] = [key] else: k_v_exchanged[value].append(key) # Result print("New Dictionary:", k_v_exchanged)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3} New Dictionary: {5: ['Sun', 'Tue'], 3: ['Mon', 'Wed']}
세트 포함
우리는 여기에서 유사한 접근 방식을 따릅니다. 여기에서도 set 함수를 사용하고 중복 값이 있는 키를 추가하여 기존 사전에서 새 사전을 만듭니다. 마지막으로 길이가 1보다 큰 값을 필터링하고 중복으로 표시합니다.
예
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4} print("Given Dictionary :", dictA) dictB = {} for key, value in dictA.items(): dictB.setdefault(value, set()).add(key) res = filter(lambda x: len(x) >1, dictB.values()) # Result print("New Dictionary:",list(res))
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4} New Dictionary: [{'Tue', 'Sun'}]