代码之家  ›  专栏  ›  技术社区  ›  Bolster

Python:Range()最大大小;动态还是静态?

  •  4
  • Bolster  · 技术社区  · 16 年前

    基本上,我需要最大的列表大小可能,即范围(1,n),没有溢出。

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  7
  •   Devin Jeanpierre    16 年前

    看“获取范围的长度”和“获取范围的长度” the builtin module source

    摘要:如果列表中包含的元素超过了有符号long中所能容纳的元素数,则会出现溢出错误。在32位Python上 2**31 - 1 ,在64位Python上 2**63 - 1 . 当然,你会得到一个MemoryError,即使值刚好低于这个值。

        2
  •  0
  •   Aaron Digulla    16 年前

    range(1, 9999999999999999)

    如果要实例化列表,请使用 list(range(1,n)) (这将复制虚拟列表)。