我正在尝试在循环内创建一个新列表(不更改名称),这将删除所有负数或零元素,最终改变其长度。谁是最快的方法呢?我失去了最后几天的努力...
答案 0 :(得分:3)
尝试使用过滤器:
newlist = filter(lambda a: a>0, [1,2,3])
或
[i for i in original_list if i > 0]
(如上文评论中所述)
答案 1 :(得分:0)
我知道这是python中的宗教信仰,是否使用lambda,但是对于这个简单的例子,我不会使用过滤器。
我个人更喜欢带有列表和集合的解决方案:
a = [1,2,-1,0,-1,...] # some list
for i in set(a):
if (i <= 0):
while (a.count(i)>0): a.remove(i)