티스토리 뷰
반응형
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Reverse / invert a dictionary mapping
딕셔너리 매핑 반전하기
문제 내용
Given a dictionary like so:
다음과 같은 딕셔너리가 주어졌을 때:
my_map = {'a': 1, 'b': 2}
How can one invert this map to get:
어떻게 하면 이 맵을 뒤집어서 다음을 얻을 수 있을까요?
inv_map = {1: 'a', 2: 'b'}
높은 점수를 받은 Solution
Python 3+:
파이썬 3+:
inv_map = {v: k for k, v in my_map.items()}
Python 2:
파이썬 2:
inv_map = {v: k for k, v in my_map.iteritems()}
가장 최근 달린 Solution
Lot of answers but didn't find anything clean in case we are talking about a dictionary with non-unique values.
많은 답변이 있지만 고유하지 않은 값을 가진 딕셔너리에 대해 이야기하는 경우를 대비하여 완전한 해결책을 찾지 못했습니다.
A solution would be:
해결책은 다음과 같습니다.
from collections import defaultdict
inv_map = defaultdict(list)
for k, v in my_map.items():
inv_map[v].append(k)
Example:
예:
If initial dict my_map = {'c': 1, 'd': 5, 'a': 5, 'b': 10}
초기 딕셔너리가 my_map = {'c': 1, 'd': 5, 'a': 5, 'b': 10}인 경우
then, running the code above will give:
위의 코드를 실행하면 다음을 얻을 수 있습니다.
{5: ['a', 'd'], 1: ['c'], 10: ['b']}
출처 : https://stackoverflow.com/questions/483666/reverse-invert-a-dictionary-mapping
반응형
'개발 > 파이썬' 카테고리의 다른 글
리스트 반대로 순회하기 (0) | 2022.12.11 |
---|---|
list.join(string)이 아닌 string.join(list)인 이유 (0) | 2022.12.11 |
리스트에서 동일 아이템 개수 구하기 (0) | 2022.12.11 |
현재 실행 중인 파일의 경로와 이름 가져오기 (0) | 2022.12.10 |
인덱스로 리스트에서 아이템 제거하기 (0) | 2022.12.10 |
댓글
공지사항
최근에 올라온 글