为什么list1中的更改​​未反映在list2中?

时间:2020-04-14 05:17:09

标签: python list

li[3]li1[0]的ID相同,但是即使0的更改,li1中的索引也不会反映在{{1}中}。为什么?

li

1 个答案:

答案 0 :(得分:-1)

整数对象的ID不同,并且与列表无关。如果您打印列表ID,它们将有所不同。您正在打印整数的id,并且只要python在一次运行中重用该整数对象,就将是相同的。 (我不确定实现的详细信息,但似乎python在创建整数的过程中不计算大数(2 ^ 30的阶数)时,会在-5到255的范围内重用同一整数对象。目的)。

为了更好地理解这一点,下面是一个示例,该示例创建两个独立的列表并打印具有相同整数和列表的ID:

list1=[1,2,3,4,5]
list2=[4,5]
print(list1[3], id(list1[3]))
print(list2[0], id(list2[0]))
print(list1, id(list1))
print(list2, id(list2))

输出:

4 4402473872
4 4402473872
[1, 2, 3, 4, 5] 4404019680
[4, 5] 4404022240
相关问题