我有一个列表字符串标签。
我正在尝试使用键作为标记字符串和值作为数组索引来初始化字典。
for i, ithTag in enumerate(tag):
tagDict.update(ithTag=i)
以上返回我 {'ithTag': 608} 608 是第 608 个索引
我的问题是,当 i 被解释为变量时,Python 将“ithTag”视为字符串而不是变量。
我很困惑,谷歌搜索这些具体问题有点困难。我希望我正确地措辞了这个问题的标题,
谢谢!
我有一个列表字符串标签。
我正在尝试使用键作为标记字符串和值作为数组索引来初始化字典。
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)))
感谢布赖恩的更新。这显然比迭代版本快约 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))
我认为这是你想要做的:
d = {}
for i, tag in enumerate(ithTag):
d[tag] = i
尝试
tagDict[ithTag] = i
我想你想要的是这样的:
for i, ithTag in enumerate(tag):
tagDict.update({ithTag: i})