我有一个列表字符串标记.
我正在尝试使用键作为标记字符串初始化字典,并将值作为数组索引.
for i, ithTag in enumerate(tag): tagDict.update(ithTag=i)
以上回报我{'ithTag':608} 608是第608个索引
我的问题是,当i被解释为变量时,Python将"ithTag"视为字符串而不是变量.
我很困惑,谷歌这些具体问题很难.我希望我正确地说出这个问题的标题,
谢谢!
你真的想这样做:
for i, tag in enumerate(tag): tagDict[tag] = i
.update()方法用于使用另一个字典更新字典,而不是用于更改单个键/值对.
如果你想聪明:
tagDict.update(map(reversed, enumerate(tag)))
感谢Brian的更新.这显然比迭代版本快约5%.
(编辑:感谢saverio指出我的答案是不正确的(现已修复).可能最有效/ Pythonic的方式是Torsten Marek的答案,略有修改:
tagDict.update((t, i) for (i,t) in enumerate(tag))
)
这是一个单行:
tagDict = dict((t, i) for i, t in enumerate(tag))