在Python中一个元组或列表可以包含多少?

在Python中一个元组或列表可以包含多少?,python,list,tuples,Python,List,Tuples,python中有多少项可以包含元组或列表?如果它是10000,会是什么呢?如果你指的是一个元组或列表的最大大小,我假设它非常大。最有可能的情况是,在达到某个限制之前,内存就用完了。如果其他人对索引有专门的了解,他们可以添加到这一点上,32位可能有21亿或42亿个项目,64位可能有8或16个六分音符。您可以自己在Python解释器中以交互方式尝试这一点: >>> tuple([0] * 10000) (0, 0, 0, ... 0, 0) 其中,…表示9995个零 import

python中有多少项可以包含元组或列表?如果它是10000,会是什么呢?

如果你指的是一个元组或列表的最大大小,我假设它非常大。最有可能的情况是,在达到某个限制之前,内存就用完了。如果其他人对索引有专门的了解,他们可以添加到这一点上,32位可能有21亿或42亿个项目,64位可能有8或16个六分音符。

您可以自己在Python解释器中以交互方式尝试这一点:

>>> tuple([0] * 10000)
(0, 0, 0, ... 0, 0)
其中,
表示9995个零

import sys

print sys.maxsize
# prints some system-dependent number representing the maximum
# size most containers can hold.


我怀疑在大多数平台上,
sys.maxsize
将返回与
sys.maxint
相同的值(保证至少为2**31-1),但我怀疑这是有保证的。

这是一个很好的答案,但容器的最大大小不会直接转化为它可以容纳的最大数量的项目。你需要了解很多关于内部表现的知识。但即使您这样做了,精确的值也不值得费心计算,因为它肯定会远远超过您的RAM。例如,在64位计算机上,我正在键入这个命令,
sys.maxsize==2**63-1
,但硬件不能处理超过2**48字节的RAM。@Zack:是的,
sys.maxsize
只告诉您Python能够在容器中索引多少元素(这就是为什么我怀疑它的值通常与
sys.maxint
)。但是你也很正确,仅仅因为Python知道如何使用那么多索引,并不意味着你的计算机可以在容器本身中存储那么多信息。