alist += [4]
和alist = alist + [4]
是不同的,因爲第一個修改了alist的引用,而後者沒有。我通過使用id()
在IDLE上嘗試了這一點,它似乎是正確的說法。在Python中獲取內存地址,確定它是列表還是字典並更新其內容
上執行IDLE(Python的3.6.1)代碼
>>> alist = [1, 2, 3]
>>> id(alist)
50683952
>>> alist += [4]
>>> id(alist)
50683952
>>> alist = alist + [4]
>>> id(alist)
50533080
這裏是id()
文檔:https://docs.python.org/3/library/functions.html#id
是否有可能得到引用的內存地址編程,確定該位置是否有一個列表或字典,閱讀內容並使用參考更新內容?
NOTE:
我發現2相關的stackoverflow帖子,但我不知道他們是否回答我的問題。
什麼'ID'返回不是內存位置。你不能用python訪問這些文件。事實上,你不能以任何語言訪問它(甚至C,你得到的只是邏輯地址)。 –
啊好的,但文檔說ID()是內存中的對象的地址。 – JRG
肯定是用詞不當。它只是一個給出對象引用的_indication_的整數,它隱約類似於內存引用。 –