2010-07-12 15 views

回答

4
import sys 

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

Python sys module

我懷疑在大多數平臺上,sys.maxsize將返回相同的值sys.maxint(這是保證至少2 ** 31-1),但我懷疑有保證。

+0

好的答案,只要它走了,但容器*的最大*大小不會直接轉化爲它可以容納的最大*數量的項目*。您需要了解有關內部表示的很多內容。但即使你這樣做,確切的價值也不值得費心去計算,因爲它肯定會比你擁有的內存大得多。例如。在64位計算機上輸入'sys.maxsize == 2 ** 63 - 1',但*硬件*不能處理超過2個** 48字節的RAM。 – zwol 2010-07-12 03:57:10

+0

@Zack:是的,'sys.maxsize'只告訴你Python中有多少元素是容器中的索引_capable_(這就是爲什麼我懷疑它通常與'sys.maxint'一樣的值)。但是你也是正確的,只是因爲Python知道如何使用這麼多的索引,並不意味着你的計算機可以將很多信息存儲在容器本身中。 – 2010-07-12 04:30:21

0

如果您指的是元組或列表的最大大小,我認爲它非常大。很可能你會在達到一定限度之前耗盡內存。如果他們對索引有特定的瞭解,那麼其他人可以增加這一點,在64位中可能有32位和8位或16位性能的2.1或4.2億項。

3

你可以試試這個自己,在交互式Python解釋:

>>> tuple([0] * 10000) 
(0, 0, 0, ... 0, 0) 

其中...代表9995零。