딕셔너리를 다룰 때 딕셔너리에는 중복 값이 있지만 분명히 키는 고유한 상태를 유지하는 상황을 만날 수 있습니다. 이 기사에서는 이를 달성하는 방법을 살펴보겠습니다.
키와 값 교환
우리는 키를 사전의 값과 교환한 다음 주어진 키와 관련된 값을 계속 추가합니다. 이렇게 하면 중복 값이 뭉쳐지고 결과로 나오는 새 사전에서 이를 볼 수 있습니다.
예
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'}]