|
|
发表于 2017-8-25 16:03:58
|
显示全部楼层
本帖最后由 jbr 于 2017-8-25 16:05 编辑
我也是新手,我试着分析一下,先做个测试:
结果是这个循环没执行,也就是说for循环不能在空列表中运行
再做第二个测试:
- list1 = ['a','a','a']
- for value in list1:
- if value=='a':
- list1.remove(value)
- print(list1)
复制代码
给list1增加一个元素,每次循环打印出list1,结果为:
['a', 'a']
['a']
该结果表明,list1执行两次循环,第三次没有执行
于是可以推测,当第三次循环执行的时候list1会由单元素变为空列表,这时,for循环会把list1按照空列表对待,导致程序在第三次循环时中断。
因此可以增加一个对照列表list2,循环时for按照list2走,但修改的只是list1
- list1 = ['a','a']
- list2 = list1[:]
- for value in list2:
- if value=='a':
- list1.remove(value)
- print(list1)
复制代码
其实这也就是2楼版主的答案 |
|