This question already has answers here:
strange result when removing item from a list [duplicate]
                                
                                    (4个答案)
                                
                        
                        
                            How to remove items from a list while iterating?
                                
                                    (30个答案)
                                
                        
                                2年前关闭。
            
                    
在此Python代码段中:

l = [10,20,30,40,50]
for i in l:
    l.remove(i)
    print(i)
print(l)


输出为:

10
30
50
[20, 40]


Python中的这种行为使我花了几个小时来调试。
“在...中...”实际上是如何工作的?

最佳答案

您代码中的“ i”采用l列表中每个元素的值。因此,键入for i in l我将首先成为第一个索引(在本例中为10),然后执行下面的代码,这会将i从列表中删除,因此现在您的列表为[20,30,40,50],它会打印i.。该值为10。到下一个索引l [1],它现在是30,并执行代码。

关于python - 在循环体中使用remove时,python“for…in…”如何工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42776763/

10-12 12:29
查看更多