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

时间:2017-09-16 08:09:28

标签: python python-3.x

尝试使用单行创建正数列表,但它对我不起作用。需要帮助

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]

为什么else pass无效?

1 个答案:

答案 0 :(得分:7)

你几乎拥有它:

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]

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

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]
相关问题