如何在Python中的列表中只取正值?

时间:2017-12-31 03:12:10

标签: python

我想知道如何在Python中的列表中只取正值。

例如,如果我有A = [1, 2, 3],则应返回[1, 2, 3]

如果我有A = [-1, 2, 3],则应返回[2, 3]

如果我有A = [-1, -2],则应返回None

非常感谢!

3 个答案:

答案 0 :(得分:2)

以下内容可行:

def pos(lst):
    return [x for x in lst if x > 0] or None

pos([-1, 2, 3])
# [2, 3]
pos([-1, -2])
# None

答案 1 :(得分:1)

您可以尝试newlist = filter(lambda a: a > 0, [1, 2, 3]) or None[i for i in original_list if i > 0] or None

答案 2 :(得分:1)

如果您对None最终输出有严格要求,请使用此方法:

result = [i for i in l if i > 0] or None

这样,如果你最终没有元素,那么它会为你提供None