【发布时间】:2016-12-26 21:54:51
【问题描述】:
假设我创建了两个不同的列表:
listA = [0, 0, 0]
listB = [1, 1, 1]
我想让 listB 中的 an 元素与 listA 中的元素引用相同的对象。这样两个列表中的元素就会一起变化。
listB[2] = listA[0]
>>listB[2]
>>0
listB[2] = 2
>>listA[0]
>>2
但是上面的操作只是传递元素的值,所以列表仍然是指单个对象。有没有一种方法或不同的数据结构可以给我想要的效果?
【问题讨论】:
-
巧合的是,当你说
listA = listB或反之亦然时,这几乎已经发生了。详情请见here。 -
只需创建
listA = listB,两个引用一个列表。否则,您不能在普通列表对象之间共享引用,不。 -
如果您使用的是对象,您可以假设,但不适用于整数。
-
@MartijnPieters 我认为他只希望每个列表中的 一个 元素对应,而不是全部。
-
@leaf:我知道,但你不能那样做,所以没有其他选择。
标签: python list python-3.x pass-by-reference