# Code 1
t1 = ['CS', 'IP', 'IT']
t1.insert(len(t1)-1, t1.pop())
print(t1) # output is ['CS', 'IP', 'IT']
# Code 2
t1 = ['CS', 'IP', 'IT']
x = t1.pop()
t1.insert(len(t1)-1, x)
print(t1) # output is ['CS', 'IT', 'IP']
上面的两个代码片段很相似,但是输出却不一样。有人能解释一下为什么吗?
2条答案
按热度按时间8ljdwjyq1#
在第一个场景中,
len(t1)
在t1.pop()
之前运行,所以当list仍然包含3个元素时。len(t1)-1
的结果是2,'IT'
位于list的第三位。在第二个例子中,运行
t1.pop()
并从列表中弹出最后一个元素,因此当运行len(t1)
时,它返回2。整个语句len(t1)-1
返回1。xuo3flqw2#
操作顺序。
1中的插入使用索引2,因为长度是在弹出最后一个元素之前检索的,即
IT
被插入到列表['CS', 'IP']
的索引2处。2中的插入在索引1处插入,因为列表的最后一个元素已经被弹出,即在列表
['CS', 'IP']
的索引1处插入IT
。