关于python:根据条件删除嵌套列表中的列表

Removing lists within a nested list based on condition

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

我有一个嵌套列表,其中包含以下内容:

1
2
3
4
5
6
7
8
[['X', 0],
['X', 0],
['X', ''],
['X', '']]

for i in myList:
    if i[1] == 0:
         myList.remove(i)

这将只删除第一个列表。输出为:

1
2
3
[['X', 0],
['X', ''],
['X', '']]

我怎样才能两者都得到呢?


使用list comprehension。迭代时不要从列表中删除元素。

前任:

1
2
3
4
5
6
s = [['X', 0],
['X', 0],
['X', ''],
['X', '']]

print([i for i in s if i[1] != 0])