Python中如何将range生成的列表按降序正确显示?
错误原因
reversed() 函数返回的是反向迭代器对象,而非直接生成反转完成的列表,因此直接打印时只会输出对象的内存地址,无法展示实际元素。
解决方案
方法1:修改原有代码,将迭代器转为列表
仅需要给reversed()的执行结果套一层list()转换即可,修改后代码如下:
answer = range(num1, num2, div) print(list(reversed(list(answer))))
方法2:直接生成降序range序列(效率更高)
range本身支持负步长参数,可以直接设置起始值为最大值、结束值小于预期的最小值,步长设为负数,不需要额外做反转操作,示例代码如下:
# 生成100到10、步长为10的降序列表示例 start = 100 # 结束值需要小于预期的最小值10,才能让range包含10这个元素 end = 9 step = -10 print(list(range(start, end, step)))
运行后直接输出预期结果:[100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
内容的提问来源于stack exchange,提问作者jump
相关产品推荐
相关产品推荐

