Python列表insert循环执行结果为[1,1,1,2],求详细解释
代码执行过程详解
咱们一步步拆解这段代码的执行逻辑,就能明白为什么输出是[1, 1, 1, 2]了。
首先看初始状态:
my = [1,2]
循环是for v in range(2),这意味着会固定循环两次,v依次取0和1。
第一次循环(v=0)
- 当前列表:
[1,2] - 取
my[v]即my[0],值为1 - 执行
my.insert(-1, 1):这里要注意,insert方法的第一个参数是插入位置,-1代表在倒数第一个元素的前面插入(不是插到列表末尾,插末尾用append)。此时列表倒数第一个元素是2,所以在2前面插入1,列表变成:[1,1,2]
第二次循环(v=1)
- 当前列表:
[1,1,2] - 取
my[v]即my[1],值为1 - 再次执行
my.insert(-1, 1):依旧在倒数第一个元素(现在还是2)前面插入1,列表变成:[1,1,1,2]
最后执行print(my),输出结果就是[1, 1, 1, 2]。
需要重点注意两个点:
insert(-1)的位置是倒数第一个元素之前,不是列表末尾- 循环次数由
range(2)固定为两次,不会因为列表长度增加而改变;且每次取my[v]都是基于当前动态变化后的列表,而非初始列表
内容的提问来源于stack exchange,提问作者ALEXANDER ABRAHAM
相关产品推荐
相关产品推荐

