1. 可变性
列表是可变的,元组是不可变的
2. 存储空间
列表占用的空间较大,而元组占用较小的空间(在存储相同数据的情况下)
原因:
1、在创建列表时,开辟的空间不仅用来存储列表数据对象,还有一部分空间用来记录列表内存使用情况,但是元组创建时就已经写死了,会使用固定的内存
2、列表和元组本质上都是指针列表,指向的是都是存储的这些对象的指针地址
3、存储同样数量的元素,列表占用的空间比元组占用的空间要大
4. 性能
1、一个变量引用元组时可以直接到缓存池引用,免去另外创建空间的过程,但列表是动态的,无法用缓存的机制保证它的值不变,因此列表的性能较差。
2、列表是不可哈希的,元组是可哈希的。
所有python内置的不可变对象都是可哈希的
3、对列表和元组进行增删改时列表的性能要比元组要好,因为元组需要另外开辟空间,创建新的元组
在元组和列表的性能区别,理解的并不全面,可以自行查找资料