python字典更新方法

时间:2008-10-06 05:53:33

标签: python dictionary variables

我有一个列表字符串标记。

我正在尝试使用键作为标记字符串初始化字典,并将值作为数组索引。

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

以上回报我{'ithTag':608} 608是第608个索引

我的问题是,当i被解释为变量时,Python将“ithTag”视为字符串而不是变量。

我很困惑,谷歌这类具体问题很难。我希望我能正确地说出这个问题的标题,

谢谢!

6 个答案:

答案 0 :(得分:46)

你真的想这样做:

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

.update()方法用于使用另一个字典更新字典,而不是用于更改单个键/值对。

答案 1 :(得分:17)

如果你想要聪明:

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

感谢Brian的更新。这显然比迭代版本快〜5%。

(编辑:感谢saverio指出我的答案不正确(现已修复)。可能最有效/ Pythonic的方式是Torsten Marek的答案,略有修改:

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

答案 2 :(得分:12)

这是一个单行:

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

答案 3 :(得分:2)

我认为这就是你想要做的事情:

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

答案 4 :(得分:2)

尝试

tagDict[ithTag] = i

答案 5 :(得分:2)

我认为你想要的是:

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