以下是随机整数的示例:
a, b, c, d = 79412623, 56529819571, 10431, 30461
t = (79412623, 56529819571, 10431, 30461)
他们的尺寸:
import sys
sys.getsizeof(t) # 88
aa, bb, cc, dd = sys.getsizeof(a), sys.getsizeof(b), sys.getsizeof(c), sys.getsizeof(d)
sum([aa,bb,cc,dd]) # 96
为什么元组占用的空间更少?
答案 0 :(得分:13)
sys.getsizeof
返回的数字不包括容器包含的对象的大小。
>>> sys.getsizeof({1:2})
280
>>> sys.getsizeof({'a_really_long_string_that_takes_up_lots_of_space':'foo'})
280
答案 1 :(得分:3)
我正在使用Python 2.6.2在32位Windows XP上工作,我尝试了你的代码,如下所示:
在[15]中:a,b,c,d = 79412623,56529819571,10431,30461
在[16]中:t =(79412623,56529819571,10431,30461)
在[17]中:sys.getsizeof(t) 出[17]:44
在[18]中:aa,bb,cc,dd = sys.getsizeof(a),sys.getsizeof(b),sys.getsizeof(c),sys.getsizeof(d)
在[19]中:总和([aa,bb,cc,dd]) 出[19]:56