#利用内置type()函数
nfc=["Packers","49"]
afc=["Ravens","48"]
combine=zip(nfc,afc)
type(combine)
#利用内置函数id(),是以十进制显示
id(nfc)
2646554913160
id(afc)
2646554913544
>>> import sys
print(sys.getsizeof(combine))
64
print(sys.getsizeof(nfc))
80
print(sys.getsizeof(afc))
80
查看变量所占内存时和自己所想的完全不一样,上面可能不注意的话不会发现
上面s赋值的时一个字符,有c/c++语言基础的应该知道一个字符变量占1个字节,这里怎么会变成50个字节了呢?别急再往下看
s变量的赋值编程了‘Aa’两个字符,输出结果变成了51,比上面正好增加了一个字节,而我们也只是对s变量的赋值多了一个a字符,你要不信邪在添加一个字符试一试
这里添加了一个字符1,注意时字符不是数值型的1,看内存有增加了一个字节
更有意思的是下面
这里s是一个空字符串却比有字符是所占内存还多
这是为什么呢,为什么造成这种情况?应该是和python一切都是对象有关,s是str类的对象,而s变成str类的对象时就已经开辟了一部分内存不管有没有值,这也时为什么s没有赋值就有51字节的内存,在之后每增加一个字符就会多一个字节(除刚开始以外)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章