【发布时间】:2017-12-10 04:25:20
【问题描述】:
为什么数组元素的ID一直在变化?
In [43]: x = np.array([[1,2,3],[4,5,6],[7,8,9]])
In [44]: print id(x[0])
30836416
In [45]: print id(x[0])
31121344
In [46]: print id(x[0])
31471808
用python脚本写的时候不是这样的 当用 python 脚本编写时,我们得到相同的 ID
aCopy 是数组 a 的副本。 两个数组的相同元素的 id 打印两次。 根据输出, 除了第一个打印之外,所有数组元素的 id 无论是相同的数组还是不同的(副本)都是相同的。 为什么两个不同数组的相同元素的 id 相同? 为什么多次打印时其中一个 id 不同?
【问题讨论】:
-
请不要发布屏幕截图,而是复制并粘贴文本。
-
@Divakar
id是内置的... -
确实很奇怪,在您的示例中使用 python(2 或 3)解释器时,id 不会改变。
-
我不认为 Python 对这种行为做出任何保证,所以它可能是特定于实现的。反正我看不出这个有实际用途
-
是不是因为你正在对数组进行切片,因此每次都创建一个副本?如果你 id(x) 原始的“未切片”数组,它每次都返回相同的 id。
标签: python arrays python-2.7 numpy ipython