Python - 使用itervalues()时更改字典的值

时间:2012-07-03 12:15:15

标签: python dictionary iterator

我想知道在不依赖于密钥的情况下修改Python字典的值是否可以:

# d is some dictionary containing classes I wrote
for v in d.itervalues():
    # modify v, and v's type may or may not change

我不确定Python标准对此有何看法,有人可以提供一些信息吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

如果你的意思是:

d = {1: [1]}
for v in d.itervalues():
    v[0] += 1

然后是的,这是完全安全的。 dict只存储对相关对象的引用,并且除了存储和检索之外不会以任何方式触摸它。这没有明确记录,但它隐含在definition of mapping中(其中dict是一个子类型):

  

映射对象将可哈希值映射到任意对象。

“任意”意味着该对象可能是可变的。