python for loop range(bigint)

3 python

在Python中,有一些简短的方法可以做类似的事情

"for i in range(n)"

当n太大而Python无法实际创建数组范围(n)?

(简短因为否则我只是使用while循环)

Jon*_*eet 5

你可以使用的xrange() ......尽管这在CPython的限制,以"短"整数:

CPython实现细节:xrange()旨在简单快速.实现可能会对此实施限制.Python的C实现将所有参数限制为本机C long("短"Python整数),并且还要求元素的数量适合本机C long.如果需要更大的范围,可以使用itertools模块制作备用版本: takewhile(lambda x: x<stop, (start+i*step for i in count())).

我不知道这个限制是否也适用于其他实现(或哪些实现) - 但是列出了一个解决方法......

我知道你bigint在你的问题标题中提到了,但是问题正在讨论数字太大而无法创建阵列 - 我怀疑有很多数字足够小而xrange无法工作,但足以引起记忆问题range.