반응형
사전을 채우는 방법이 있는지 궁금해서 말보다 덜 장황한 동일한 값으로 매핑되는 여러 키가 있는지 궁금합니다.
d = {1:'yes', 2:'yes', 3:'yes', 4:'no'}
나는 다음과 같은 라인을 따라 무언가를 생각하고 있습니다.
d = {*(1,2,3):'yes', 4:'no'}
이것은 분명히 구문 오류입니다.
너무 많은 난독 화없이이 작업을 수행하는 합리적으로 간단한 방법이 있습니까? (나는 코드 골프를 치지 않고 있지만 본질적으로 동일한 것을 반복해서 작성할 필요가 없습니다. 그러나 코드 골프가 굉장하기 때문에 코드 골프 관련 답변도 높이 평가 될 것입니다 =]).
수정 :
나는 아마도 나쁜 예를 택했을 것입니다. 이것이 내가하려는 것입니다.
d = {*('READY', 95): 'GPLR2_95', 'CHARGING': 'GPLR3_99', 'PROTECTION': 'GPLR3_100', 'CONNECTED': 'GPLR3_101', 'ERROR':'GPLR3_102'}
이것이 확장되기를 기대하는 것은 다음과 같습니다.
d = {'READY':'GPLR2_95', 95: 'GPLR2_95', ...}
수정-> 수정 :
나는 이것이 어리 석고 완전히 불필요하다는 것을 알고 있지만 내 목표는이 선언을 한 줄로 만드는 것입니다. 이것은 분명히 응답을 제한해서는 안되며 한 줄에 맞기 때문에 코드를 작성하는 것은 어리 석습니다. 그러나 단일 라이너라면 좋을 모듈 수준 상수 dict를 작성하고 있습니다.
해결 방법
당신은 그것을 뒤집을 수 있습니다.
>>> d1 = {"yes": [1,2,3], "no": [4]}
그런 다음 해당 사전을 "반전"합니다.
>>> d2 = {value:key for key in d1 for value in d1[key]}
>>> d2
{1: 'yes', 2: 'yes', 3: 'yes', 4: 'no'}
참조 페이지 https://stackoverflow.com/questions/6191672
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to trigger function on value change? (0) | 2020.10.01 |
---|---|
파이썬 What is the best way to exit a function (which has no return value) in python before the function ends (e.g. a check fails)? (0) | 2020.10.01 |
파이썬 목록에서 최대 값과 색인을 찾는 Pythonic 방법? (0) | 2020.10.01 |
파이썬 Python 속성은 어떻게 작동합니까? (0) | 2020.10.01 |
파이썬 장고 폼에 체크 박스를 삽입하는 방법 (0) | 2020.10.01 |
댓글