只有python中列表理解中的正数

尝试使用单行创建正数列表但它不适合我.需要帮忙

numbers = [34.6, -203.4, 44.9, 68.3, -12.2, 44.6, 12.7]

我的代码:

newlist = [n if n>0 else pass for n in numbers]

为什么通过不起作用?

最佳答案 你几乎拥有它:

numbers = [34.6, -203.4, 44.9, 68.3, -12.2, 44.6, 12.7]

newlist = [n for n in numbers if n > 0]

输出:

[34.6, 44.9, 68.3, 44.6, 12.7]

如果你需要一个else,用%替换负数,例如:(这不是你要求的,但为了完整性,我把它包括在这里)

newlist = [n if n > 0 else None for n in numbers]

输出:

[34.6, None, 44.9, 68.3, None, 44.6, 12.7]

最后,如果您想将所有数字转换为正数,请使用abs:

numbers = [34.6, -203.4, 44.9, 68.3, -12.2, 44.6, 12.7]

newlist = [abs(n) for n in numbers]

输出:

[34.6, 203.4, 44.9, 68.3, 12.2, 44.6, 12.7]
点赞