尘世小书童 Python 2024-03-08 00:20 采纳率: 100%
浏览 7
已结题

python for循环-列表

代码:


a = [1, 2, 3, 4, 5]
b = []
for i in a:
    c = a.pop(0)
    b.append(c)
print(b)

得到:
[1, 2, 3]

请教下:为啥用for循环遍历列表a的时候
想要依次把a列表中的元素添加到b列表的时候
‘4’和‘5’为啥没有被添加呀?

我理解的是:循环的第一次‘1’被弹出 赋值给了变量c
接着b列表将弹出的‘1’添加了;
接着:以此类推 a列表应该依次把后面的2345都给弹出给c 然后被添加到b列表中呀;

  • 写回答

5条回答 默认 最新

  • 草莓味的AD钙奶 2024-03-08 11:44
    关注

    我好像悟了,当你a.pop(0)删除元素时,列表索引会从0增加,当它超出本身的索引范围就会停止for循环,我添加一些提示给你看看:

    a = [1,2,3,4,5]
    b = []
    for index, x in enumerate(a):
        c = a.pop(0)
        print("索引是{},列表的长度是{},删除的值是{},a的值是{}".format(index, len(a),c,a))
        b.append(c)
    print(b)
    
    

    当执行第三次循环后,a.pop(0)的索引变成3,此时a[4,5]的索引只有2,所以停止执行。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日