列表和元组的区别是列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)。元组是静态的,长度大小固定,无法增加删减或者改变(immutable)。
一、列表和元组的区别
列表和元组的区别是列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)。元组是静态的,长度大小固定,无法增加删减或者改变(immutable)。
元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
列表list:有序,可变。
元组tuple:有序,不可变。
字典dict:无序,字典的key是不可变的,值是可变的;在python中字符串,数字,元组都是不可变的对象。
序列:列表,元组和字符串都序列;即成员有序排列,可以通过下标访问,可以进行切片操作。字符串(普通字符串和unicode字符串)
集合:没有顺序的简单对象的聚集。可以检查成员是否存在,是否是另一个集合的子集,得到两个集合的交集等等
复制一个列表或者类似的序列或者其他复杂对象,那么必须使用切片操作符来去的拷贝。当你创建一个对象并将它赋值给一个变量的时候,这个变量仅仅引用那个对象,而不是表示这个对象本身。也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
延伸阅读:
二、需要元祖的原因
通过对比列表和元组存储方式的差异,我们可以引申出这样的结论,即元组要比列表更加轻量级,所以从总体上来说,元组的性能速度要由于列表。
另外,Python 会在后台,对静态数据做一些资源缓存。通常来说,因为垃圾回收机制的存在,如果一些变量不被使用了,Python 就会回收它们所占用的内存,返还给操作系统,以便其他变量或其他应用使用。
但是对于一些静态变量(比如元组),如果它不被使用并且占用空间不大时,Python 会暂时缓存这部分内存。这样的话,当下次再创建同样大小的元组时,Python 就可以不用再向操作系统发出请求去寻找内存,而是可以直接分配之前缓存的内存空间,这样就能大大加快程序的运行速度。
以上就是关于列表和元祖的内容希望对大家有帮助。