使用正元素创建新列表

时间:2013-01-12 18:12:47

标签: python list loops python-3.x

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

2 个答案:

答案 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)