‘’’ l = [] l.sizeof() // 空列表的存储空间为40字节 40 l.append(1) l.sizeof() 72 // 加入了元素1之后,列表为其分配了可以存储4个元素的空间 (72 - 40)/8 = 4 l.append(2) l.sizeof() 72 // 由于之前分配了空间,所以加入元素2,列表空间不变 l.append(3) l.sizeof() 72 // 同上 l.append(4) l.sizeof() 72 // 同上 l.append(5) l.sizeof() 104 // 加入元素5之后,列表的空间不足,所以又额外分配了可以存储4个元素的空间 ‘’’ 列表分类内存时,会预先给空列表分配40字节的存储空间,当新增元素时,会依次分配4个元素的存储空间。而元组的分配空间固定。
总的来说,列表和元组都是有序的,可以存储任意数据类型的集合,区别主要在于下面这两点。 列表是动态的,长度可变,可以随意的增加、删减或改变元素。列表的存储空间略大于元组,性能略逊于元组。 元组是静态的,长度大小固定,不可以对元素进行增加、删减或者改变操作。元组相对于列表更加轻量级,性能稍优。