Python从列表中删除项目

Python removing items from list

本问题已经有最佳答案,请猛点这里访问。

我有一个给定格式的列表:

1
[['John', 'Smith'], ['Linus', 'Torvalds'], ['Bart', 'Simpson']]

在列表中有一些类似这样的元素['LinusTorvalds','',我想删除它们。那么为什么下面的代码不删除它们呢?

1
2
3
for i in people:
    if(i[0] == '' or i[1] == ''):
        print people.pop(people.index(i))


您在对列表进行迭代时更改了它,这是问题的根源。有效的方法是

1
people[:] = [p for p in people if p[0] != '' and p[1] != '']

这样,将生成一个只包含所需元素的新临时列表,并在操作完成后分配给原始列表对象。