一、列表和元祖
python中最常见的两种数据结构:列表(list)和元祖(tuple);
- 列表和元祖都是有序的,可以放置任意数据类型的有序集合,在大多数编程语言中,集合的数据类型必须一致,但对于列表和元祖来说并无此要求;
- 列表和元祖都支持负数索引,-1表示最后一个元素,-2表示倒数第二个元素‘
- 列表和元祖支持切片操作,括号为前闭后开;
- 可通过list()和tuple()函数相互转化;
二、区别
- 列表是动态的,可以随意增加、删除、修改元素(mutable);
- 元祖是静态的,长度固定,无法增加、删减或改变(imutable);
若果元祖想要增加元素,需要开辟一块新的内存,创建新的元祖后,再将原来元祖的值填充进去;
- 列表和元祖存储方式的差异,放置相同元素,元祖的存储空间要比列表少8字节(自己实践是8字节,但是课程中讲要少16字节),因为列表还需要存储指针,来指向对应的元素,由于列表可变,还需要存储已经分配的长度大小,当空间不足时,会