len()查詢容器中包含的項目數(shù)巡球。對于字符串编饺,即字符數(shù):
返回對象的長度(項目數(shù))隆箩。參數(shù)可以是序列(字符串,元組或列表)或映射(字典)琼梆。
sys.getsizeof()另一方面性誉,返回對象的內存大小:
返回對象的大芯ピ印(以字節(jié)為單位)错览。該對象可以是任何類型的對象。所有內置對象都將返回正確的結果蛉顽,但是對于第三方擴展蝗砾,這不一定成立,因為它是特定于實現(xiàn)的携冤。
Python字符串對象不是簡單的字符序列悼粮,每個字符1個字節(jié)。
具體來說曾棕,該sys.getsizeof()函數(shù)包括垃圾收集器開銷(如果有):
getsizeof():如果對象由垃圾收集器管理扣猫,則調用該對象的方法并添加額外的垃圾收集器開銷。不需要跟蹤字符串對象(它們不能創(chuàng)建循環(huán)引用)翘地,但是字符串對象確實需要更多的內存申尤,而不僅僅是每個字符的字節(jié)數(shù)。
import sys
list1 = []
trip1 = ('a','b','c','d')
set1 = {'a','b','c','d','e'}
print('列表的長度為:', len(list1))
print('元組的內存為:', len(trip1))
print('集合的內存為:', len(set1))
print('列表的內存為:', sys.getsizeof(list1))
print('元組的內存為:', sys.getsizeof(trip1))
print('集合的內存為:', sys.getsizeof(set1))
運行程序:
列表的長度為: 0
元組的內存為: 4
集合的內存為: 5
列表的內存為: 28
元組的內存為: 36
集合的內存為: 364