首页 > 解决方案 > 弹出列表的所有元素

问题描述

我正在学习 Python 的基础知识,并且通过for循环,我正在尝试使用该pop方法来删除列表中的所有元素。无论如何,令我惊讶的是,一些元素仍然存在,我不知道为什么。

thelist = ['CompSci', 'Math', 'Chemistry', 'Art', 'Physics', 'Sports', 'Economics', 'Biology']


for items in thelist:
    thelist.pop(0)

print(thelist)

我希望最终得到一个空集,但实际输出是最后 4 个元素['Physics', 'Sports', 'Economics', 'Biology']

标签: python

解决方案


让我们在迭代时打印项目和列表

In [5]: thelist = ['CompSci', 'Math', 'Chemistry', 'Art', 'Physics', 'Sports', 'Economics', 'Biology'] 
   ...:  
   ...:  
   ...: for items in thelist: 
   ...:     print(items) 
   ...:     thelist.pop(0) 
   ...:     print(thelist) 
   ...:  
   ...:                                                                                                                                                                      
CompSci
['Math', 'Chemistry', 'Art', 'Physics', 'Sports', 'Economics', 'Biology']
Chemistry
['Chemistry', 'Art', 'Physics', 'Sports', 'Economics', 'Biology']
Physics
['Art', 'Physics', 'Sports', 'Economics', 'Biology']
Economics
['Physics', 'Sports', 'Economics', 'Biology']

因此,每次循环运行时,您都会前进一项,并从列表中删除一项,因此您将列表迭代 4 次而不是 8 次


推荐阅读