如何创建和使用共享内存项的两个Python迭代,并在使用过程中维护共享内存



如何创建一对包含相同项(不仅是项的副本,还有项的共享内存(但顺序不同的可迭代项,并使其中一个可迭代项中的项的更改反映在另一个可遍历项中?

例如:

>>> x = [0, 1, 2, 3]
>>> y = [x[1], x[2], x[3], x[0]]
>>> x[2] is y[1]
True

到目前为止很好,但如果我对可迭代中的一个项进行更改,它最终会创建一个新的项(新内存(空间,而不是更改同一内存空间中的项。

>>> x[2] *= 5
>>> x[2] is y[1]
False
>>> x[2]
10
>>> y[1]
2

将每个项目放入一个框中:

>>> x = [[0], [1], [2], [3]]
>>> y = [x[1], x[2], x[3], x[0]]
>>> x[2] is y[1]
True
>>> x[2][0] *= 5
>>> x[2] is y[1]
True
>>> x[2]
[10]
>>> y[1]
[10]

这里我使用的是一个列表,但任何可变容器都可以

最新更新