2012-07-03 27 views
4

我想知道,如果它是確定修改Python字典當它不依賴於鍵的值:Python的 - 使用itervalues()的時候詞典的變化值

# 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標準對此有何評論,有人可以提供一些信息嗎?

謝謝!

+3

由於v將是相同的對象,而不是複製,您可以自由更改它。 –

+1

是的,你可以修改,但你應該選擇另一種方法。嘗試從官方的python文檔中閱讀幾個第一章。 –

+1

你是什麼意思「'V'的類型可能會或可能不會改變」?對象的類型如何改變? –

回答

5

如果你的意思是像結構:

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

然後是的,這是完全安全的。 dict僅存儲對所討論對象的引用,除了存儲和檢索外,不以任何方式觸及它。這是沒有明確記載,但它是在definition of mapping隱式的(其中dict的是亞型):

映射對象可哈希值映射到任意對象。

「任意」是指該對象可以是可變的。