尝试使用单行创建正数列表但它不适合我.需要帮忙
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]