您能告诉我,如果我使用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)
.
您能告诉我,如果我使用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)空间.