代码:
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列表中呀;
代码:
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列表中呀;
我好像悟了,当你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,所以停止执行。
