51Testing软件测试论坛
标题:
python 使用循环把列表a,移动到列表b,报错
[打印本页]
作者:
测试积点老人
时间:
2019-2-21 09:39
标题:
python 使用循环把列表a,移动到列表b,报错
想把列表a,移动到列表b,以下是使用for循环,和while循环的代码写法。
代码一:
a=['hello','green','shop','read']
b=[]
for i in range(0,len(a)):
c=a.pop()
b.append(c)
prnit (a,b)
复制代码
代码二:
a=['hello','green','shop','read']
b=[]
for i in a:
c=a.pop()
b.append(c)
prnit (a,b)
复制代码
代码三:
a=['hello','green','shop','read']
b=[]
while a:
c=a.pop()
b.append(c)
print (a,b)
复制代码
现在的问题是,在运行代码二时,为什么列表a,只移动了后两项到列表b,for循环为什么只循环了两次。难道是因为删除了列表a的元素,导致列表a的元素个数发生变化不能进行循环吗?求解
作者:
jingzizx
时间:
2019-2-22 17:30
最好的办法就是打印日志
作者:
丛影
时间:
2019-2-25 12:21
是的,在代码2中,循环中对a列表进行了更改
第一次循环
c: read
a: ['hello', 'green', 'shop']
b: ['read', 'shop', 'green', 'hello', 'read']
第二次循环
c: shop
a: ['hello', 'green']
b: ['read', 'shop', 'green', 'hello', 'read', 'shop']
第二次循环结束后,理论上i =a[2],但是这时候a 是没有a[2]的,a的长度为2.
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2