我对python很新,所以我一直在通过Project Euler来解决我头脑中的逻辑问题。
基本上,我需要尽可能大的列表大小,即范围(1,n),而不会溢出。
有什么想法吗?
答案 0 :(得分:6)
总结:如果列表中的元素多于可以放入有符号长整数的元素,则会出现OverflowError。在32位Python上2**31 - 1
,在64位Python上2**63 - 1
。当然,即使对于那个值,你也会得到一个MemoryError。
答案 1 :(得分:0)
您的列表大小仅受您的记忆限制。请注意,根据您的Python版本,range(1, 9999999999999999)
只需要几个字节的RAM,因为它始终只创建它返回的虚拟列表的单个元素。
如果要实例化列表,请使用list(range(1,n))
(这将复制虚拟列表)。