반응형
<질문>
목록 문자열 태그가 있습니다.
키를 태그 문자열로, 값을 배열 인덱스로 사용하여 사전을 초기화하려고합니다.
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})
반응형
'개발 > Python' 카테고리의 다른 글
URL에서 파이썬 저장 이미지 (0) | 2021.01.07 |
---|---|
pyqt에서 Qtablewidget의 특정 셀 배경색을 변경하는 방법 (0) | 2021.01.07 |
localhost (python 요청)에 연결하려고 할 때 CSRF와 관련된 403 오류 발생 (0) | 2020.10.02 |
Python 요청. 403 금지 (0) | 2020.10.02 |