li[3]
和li1[0]
的ID相同,但是即使0
的更改,li1
中的索引也不会反映在{{1}中}。为什么?
li
答案 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