개발/Python

파이썬 사전 업데이트 방법 물어보다

MinorMan 2020. 10. 2. 02:16
반응형

<질문>

목록 문자열 태그가 있습니다.

키를 태그 문자열로, 값을 배열 인덱스로 사용하여 사전을 초기화하려고합니다.

for i, ithTag in enumerate(tag):
    tagDict.update(ithTag=i)

위는 나를 반환합니다 { 'ithTag': 608} 608은 608 번째 색인입니다

내 문제는 i가 변수로 해석되는 동안 파이썬이 "ithTag"를 변수 대신 문자열로 취급한다는 것입니다.

혼란 스럽습니다. 이러한 종류의 특정 질문을 Google에 검색하는 것은 다소 어렵습니다. 이 질문의 제목을 올바르게 말했으면 좋겠습니다.

감사!


<답변1>

실제로 이렇게하고 싶습니다.

for i, tag in enumerate(tag):
    tagDict[tag] = i

.update () 메서드는 단일 키 / 값 쌍을 변경하는 것이 아니라 다른 사전을 사용하여 사전을 업데이트하는 데 사용됩니다.


<답변2>

똑똑해지고 싶다면 :

tagDict.update(map(reversed, enumerate(tag)))

업데이트에 대한 Brian에게 감사합니다. 이것은 반복 버전보다 분명히 ~ 5 % 빠릅니다.

(편집 : 내 대답이 잘못되었음을 지적 해 주신 saverio에게 감사드립니다 (현재 수정되었습니다). 아마 가장 효율적인 / Pythonic 방법은 약간 수정 된 Torsten Marek의 대답 일 것입니다.

tagDict.update((t, i) for (i,t) in enumerate(tag))

)


<답변3>

한 줄짜리입니다.

tagDict = dict((t, i) for i, t in enumerate(tag))

<답변4>

나는 이것이 당신이 원하는 것이라고 생각합니다.

d = {}
for i, tag in enumerate(ithTag):
   d[tag] = i

<답변5>

시험

tagDict[ithTag] = i

<답변6>

나는 당신이 원하는 것은 이것이라고 생각합니다.

for i, ithTag in enumerate(tag):
    tagDict.update({ithTag: i})
반응형