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