我是 python 的新手,所以我按照惯例通过 Project Euler 来解决我头脑中的逻辑问题。
基本上,我需要尽可能大的列表大小,即 range(1,n),而不会溢出。
有什么想法吗?
最佳答案
查看 the builtin module source 中的 get_len_of_range 和 get_len_of_range_longs
总结:如果列表中的元素多于可以装入有符号长整数的元素,您将得到一个 OverflowError。在 32 位 Python 上是 2**31 - 1
,在 64 位 Python 上是 2**63 - 1
。当然,即使是低于该值的值,您也会收到 MemoryError。
关于Python:Range() 最大尺寸;动态还是静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3247973/