#연구/#Python

[파이썬/Python] 파이썬 딕셔너리에서 Value로 Key값 찾기 v2#딕셔너리 Value에 매칭되는 Key 찾기 #같은 값을 가진 Key여러개 찾기

every7hing 2020. 12. 12. 00:19
반응형

 

[파이썬/Python] 파이썬 딕셔너리에서 Value로 Key값 찾기 v2

#딕셔너리 Value에 매칭되는 Key 찾기 

#같은 값을 가진 Key여러개 찾기

 

저번 포스팅에서 이미 만들어봤듯이, 딕셔너리에서 주어진 값으로 Key를 찾는 함수를 만들어봤다.

 

2020/12/12 - [#연구/#Python] - [파이썬/Python] 파이썬 딕셔너리에서 Value로 Key값 찾기 #딕셔너리 Value에 매칭되는 Key 찾기 #Finds key in the provided dictionary that has the given value.

 

[파이썬/Python] 파이썬 딕셔너리에서 Value로 Key값 찾기 #딕셔너리 Value에 매칭되는 Key 찾기 #Finds key

[파이썬/Python] 파이썬 딕셔너리에서 Value로 Key값 찾기 #딕셔너리 Value에 매칭되는 Key 찾기 딕셔너리에서 주어진 값을 가지고 매칭되는 키 값을 가져오는 함수를 만들어보겠다. 일단 아래와

isss.tistory.com

 

그런데, 주어진 값이 중복되어 여러개의 Key가 해당 값을 가지고 있다면?

그럴 때는 해당 값을 가진 모든 Key를 가져와야 되므로, 오늘은 중복 값을 가진 Key를 모두 찾는 함수를 만들어보겠다.

 

저번과 똑같이 아래와 같은 딕셔너리가 있다고 가정해보자.

임의로, 중복되는 값이 존재하게 만들었다.

scores = {
  'A': 1,
  'B': 11,
  'C': 9,
  'D': 11,
  'E': 8,
  'F': 10,
  'G': 11,
  'H': 5,
}

 

그리고 중복되는 값을 가진 Key를 모두 찾아서 리턴하도록 함수를 만들었다.

def find_keys(dict, val):
  return list(key for key, value in dict.items() if value == val)

 

그리고 테스트!

print(find_keys(scores, 11))

 

그 결과, 11이라는 값을 가진 3개의 Key가 모두 리턴되는 것을 볼 수 있다.

['B', 'D', 'G']

 

완성된 코드는 아래에 공유하겠다.

def find_keys(dict, val):
  return list(key for key, value in dict.items() if value == val)
  
scores = {
  'A': 1,
  'B': 11,
  'C': 9,
  'D': 11,
  'E': 8,
  'F': 10,
  'G': 11,
  'H': 5,
}

print(find_keys(scores, 11))

 

반응형