这个打印出来为什么不是1,2,3,而是13
mum = ['1','2','3']for names in mum:
mum.remove(names)
print(names)
=============== RESTART: C:/Users/Administrator/Desktop/练习题/31.py ==============
1
3
>>> Python 边遍历列表边删除元素会引发 Bug,所以需要先拷贝一份列表:
mum = ['1','2','3']
for names in mum[:]:
mum.remove(names)
print(names) zltzlt 发表于 2020-8-13 11:00
Python 边遍历列表边删除元素会引发 Bug,所以需要先拷贝一份列表:
哦谢谢 zltzlt 发表于 2020-8-13 11:00
Python 边遍历列表边删除元素会引发 Bug,所以需要先拷贝一份列表:
大佬,这算是BUG么???我怎么感觉像是正常逻辑?
mum = ['1','2','3']
for names in mum:
print(names)
mum.remove('1')
比如我把代码改成这样(会报错,不管报错),输出的也是1和3,没有2.
应该是for循环遍历元素时是通过下标遍历的吧?既第一次循环时打印mum,既打印了1,然后1被删除,下次循环时打印mum而因为1被删除了,所以mum变成了3
是这个逻辑么??? yhhpf 发表于 2020-8-13 11:14
大佬,这算是BUG么???我怎么感觉像是正常逻辑?
嗯对,就是这样 zltzlt 发表于 2020-8-13 11:16
嗯对,就是这样
哦哦,get到了~{:10_298:}
页:
[1]