2

我正在尝试在循环中创建一个新列表(不更改名称),它将削减所有负数或零元素,最终改变其长度。谁是最快的方法?我失去了最后几天试图做...

4

2 回答 2

3

尝试使用过滤器:

newlist = filter(lambda a: a>0, [1,2,3])

或者

[i for i in original_list if i > 0] (如上面评论中所述)

于 2013-01-12T18:30:35.297 回答
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)
于 2013-01-12T18:35:10.457 回答