如何在Python的列表中存储数组引用

编程语言 2026-07-09

我想创建一个由对另一个数组的引用组成的数组。

listB = [1,2,3,4,5]
listA = [listB[0], listB[1]]
print(listA[0]) #returns 1
listB[0] = 0
print(listA[0]) #still returns 1

我该如何修改listA,使第二次打印能够反映更新后的listB?

解决方案

listA = [listB[0], listB[1]]

并不存储对位置 listB[0]listB[1] 的引用。它存储的是当前位于这些位置的对象。

在你的情况下,listA[0] 指向整数对象 1。当你随后执行:

listB[0] = 0

你并没有改变整数对象 1;你只是将 listB 中索引 0 处的元素替换为另一个整数对象 0

Python没有对列表槽位的直接引用。你需要改为同时存储列表和索引:

listB = [1, 2, 3, 4, 5]

listA = [(listB, 0), (listB, 1)]

print(listA[0][0][listA[0][1]])  # 1

listB[0] = 0

print(listA[0][0][listA[0][1]])  # 0
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章