Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 사전에서 중복 값이 ​​있는 키 찾기

<시간/>

딕셔너리를 다룰 때 딕셔너리에는 중복 값이 ​​있지만 분명히 키는 고유한 상태를 유지하는 상황을 만날 수 있습니다. 이 기사에서는 이를 달성하는 방법을 살펴보겠습니다.

키와 값 교환

우리는 키를 사전의 값과 교환한 다음 주어진 키와 관련된 값을 계속 추가합니다. 이렇게 하면 중복 값이 ​​뭉쳐지고 결과로 나오는 새 사전에서 이를 볼 수 있습니다.

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'}]