您能告诉我,如果我使用for i in range(n),python会创建一个范围为0的范围吗?N-1,并迭代该容器中的元素(O(N)个额外空间),或者它只使用1个可变(O(1))空间)

一方面,我想,如果我们可以将Range转换为List,那么使用Range函数创建一个容器(O(N)).但是从另一个Angular 来看,我们可以使用while i < n ...O(1)而不是for i in range(n).

推荐答案

在Python3中,range不会创建所有元素,而只是在您请求当前元素时返回该元素.所以,是的,它使用了O(1)空间.

Python相关问答推荐

使用unmanagedexports从Python调用的c#DLC

将大小为n*512的数组绘制到另一个大小为n*256的数组的PC组件

Python(Polars):使用之前的变量确定当前解决方案的Vector化操作

手动为pandas中的列上色

Python中两个矩阵的自定义Hadamard风格产物

将列表中的元素替换为收件箱中的元素

仅对matplotlib的条标签中的一个条标签应用不同的格式

Pydantic:如何将对象列表表示为dict(将列表序列化为dict)

在Pandas框架中截短至固定数量的列

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

如何计算两极打印机中 * 所有列 * 的出现次数?

删除最后一个pip安装的包

如何使用它?

Pandas DataFrame中行之间的差异

提取相关行的最快方法—pandas

如何在Python中获取`Genericums`超级类型?

用渐近模计算含符号的矩阵乘法

如何使用Numpy. stracards重新编写滚动和?

Python Pandas—时间序列—时间戳缺失时间精确在00:00

OpenGL仅渲染第二个三角形,第一个三角形不可见