【python】列表和元组的区别和底层实现
一、列表和元组的区别
- 【变更方面】
- 列表中的元素可以进行任意修改,就好比是用铅笔在纸上写的字,写错了还可以擦除重写;
- 元组中的元素无法修改,除非将元组整体替换掉,就好比是用圆珠笔写的字,写了就擦不掉了,除非换一张纸。
- 【存储方式】
- 元组占用的存储空间比列表少占用 16 个字节
- 列表是动态的,元组是静态变量,它不被使用并且占用空间不大时,Python 会暂时缓存这部分内存。这样的话,当下次再创建同样大小的元组时,Python 就可以不用再向操作系统发出请求去寻找内存,而是可以直接分配之前缓存的内存空间,这样就能大大加快程序的运行速度。
元组确实没有列表那么多功能,但是元组依旧是很重要的序列类型之一,元组的不可替代性体现在以下这些场景中:
- 元组作为很多内置函数和序列类型方法的返回值存在,也就是说,在使用某些函数或者方法时,它的返回值会元组类型,因此你必须对元组进行处理。
- 元组比列表的访问和处理速度更快,因此,当需要对指定元素进行访问,且不涉及修改元素的操作时,建议使用元组。
- 元组可以在映射(和集合的成员)中当做“键”使用,而列表不行。这会在后续章节中作详解介绍。