python - 范围函数不打印数字列表
问题描述
我想打印一个从 1 到 1000 的奇数列表。
x = range(1, 1000, 2)
print (x)
上面的代码打印:range(1, 1000, 2)
. 但是,当我使用 for 循环时,它可以正常工作。
谁能解释为什么?
解决方案
这是一个range
对象。如果您想要一个编号为 1 到 1000 的列表,其中包含 2 作为步骤,您可以这样做:
list(range(1, 1000, 2))
如果您不想更改列表中的值,使用tuple
是更好的选择:
tuple(range(1, 1000, 2))
Range 对象不同于列表。它实际上并不包含从 1 到 1000 的数字。当您在循环中使用它时,它会在for
循环时生成数字。
例如,如果您创建一个从一到千的范围,它不会占用大量内存;但是当您将其转换为列表时,所有实际数字都将存储在内存中。
在 Python 2 中,范围将返回一个列表,但在 Python 3 中,范围是一个不可变的范围类型序列。如python文档中所述:
范围类型相对于常规列表或元组的优点是范围对象将始终占用相同(少量)内存,无论它表示的范围大小(因为它只存储开始、停止和步长值,根据需要计算单个项目和子范围)。
但这并不意味着您不能对范围对象使用索引。由于它们是不可变的序列,因此您可以像列表一样对它们应用索引。返回值也将是一个范围对象(除非它没有被切片并且它只选择一个元素,那么它将将该数字返回为int
)。
推荐阅读
- netsuite - NetSuite 或 SuiteScript 按项目筛选子列表中的供应商
- java - VSCode maven proj包org.springframework.boot.SpringApplication不存在
- php - 如何在wordpress的用户名中转义斜杠('/')?
- r - R中向量的指数移动平均值
- swift - 如何在 SwiftUI 中访问另一个 CoordinateSpace 的 safeAreaInsets
- python - 我怎样才能摆脱这些 seaborn 弃用警告并仍然获得完全相同的数字?
- ios - 应用程序未在 iOS 文件浏览器中显示为顶级应用程序
- github - 我的 git push 不工作,给出错误:RPC 失败;curl 18 传输已关闭,剩余未完成的读取数据
- reactjs - 如何使用 react-jsonschema-forms 创建一个典型的国家/省(或州)依赖项下拉列表?
- python-3.x - Pytest 和 Tox ADB 连接问题 - 设备未经授权