首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Python 3中打印列表(范围(4**4**4))

无法在Python 3中打印列表(范围(4**4**4))
EN

Stack Overflow用户
提问于 2019-11-16 15:22:45
回答 2查看 262关注 0票数 0

有谁能帮我解释一下为什么我不能打印

代码语言:javascript
复制
>>> list(range(4**4**4)).

我收到一个错误OverflowError: range()结果有太多项

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-16 15:35:00

根据官方文件:

https://docs.python.org/2/library/sys.html#sys.maxsize https://docs.python.org/3/library/sys.html#sys.maxsize

sys.maxsize是平台的Py_ssize_t类型所支持的最大正整数,因此最大大小列表、字符串、dicts和许多其他容器可以具有。

尝试使用此代码检查是否能够创建您大小的列表:

代码语言:javascript
复制
>>> import sys
>>> sys.maxsize > 4**4**4

并尝试这样来验证python是如何在您的情况下解析权限的:

代码语言:javascript
复制
>>> print(2**2**3)
256
>>> print(2**(2**3))
256
>>> print((2**2)**3)
64
票数 0
EN

Stack Overflow用户

发布于 2019-11-16 15:35:37

  • 如果列表中包含的元素多于可以放入已签名的long:

中的元素,您将得到一个OverflowError

代码语言:javascript
复制
- On 32bit Python: 2\*\*31 - 1
- On 64 bit Python: 2\*\*63 - 1 
- You can get a MemoryError even for values just under that.

例如,您的数字非常大:

代码语言:javascript
复制
- 2\*\*64 = 18446744073709551616
- 4\*\*4\*\*4 = 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58892204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档