假设我有一个列表
a = [100, 78, -5, 0, 10]
如何删除低于或等于零的项目。我尝试使用过滤器,但只删除了不某个值的项目。
答案 0 :(得分:2)
使用列表推导过滤列表并将所有内容保持在零以下:
a = [i for i in a if i > 0]
这将创建一个新的列表对象,替换前一个。如果您对列表有多个需要查看更改的引用,请分配给切片:
a[:] = [i for i in a if i > 0]
现在a
的内容被列表推导结果的内容替换。
答案 1 :(得分:0)
你需要一个带过滤器的lambda:
filter(lambda x: x>0)