Python反向打印列表中的浮点数时输出None是什么原因?
问题原因
- Python中列表的
reverse()方法为原地操作,仅修改原列表的元素排序,无返回值,默认返回None,你直接打印该方法的执行结果,输出自然全部为None。 - 你的代码逻辑存在冗余错误:遍历列表的每一个元素时都执行一次反转操作,会导致列表不断在正序、倒序之间来回切换,完全不需要在循环内执行反转。
正确实现方式
方案1:原地反转后遍历(会修改原列表)
nums = [1.4, 1.2054, 2.2, 2.5, 3.66, 3.0, 4.024, 4.00001, 5.5, 5.1] nums.reverse() for num in nums: print(num)
方案2:切片反转(不修改原列表)
通过[::-1]切片语法直接生成反转后的新列表,不会改动原列表内容:
nums = [1.4, 1.2054, 2.2, 2.5, 3.66, 3.0, 4.024, 4.00001, 5.5, 5.1] for num in nums[::-1]: print(num)
方案3:用reversed()内置函数(不修改原列表)
reversed()会返回一个反转迭代器,遍历效率更高且不会改动原列表:
nums = [1.4, 1.2054, 2.2, 2.5, 3.66, 3.0, 4.024, 4.00001, 5.5, 5.1] for num in reversed(nums): print(num)
内容的提问来源于stack exchange,提问作者Gode
相关产品推荐
相关产品推荐

