Python元组与列表的异同点详解

Python元组与列表的异同点

相同点:
  1. 列表和元组都属于有序序列;
  2. 都支持使用双向索引访问其中的元素;
  3. 以及使用count()方法统计指定元素的出现次数和index()方法获取指定元素的索引,len()、map()、filter()等大量内置函数和+、in等运算符也都可以作用于列表和元组。
不同点:
  1. 元组属于不可变序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素。
>>> x = (1, 2, 3)       #直接把元组赋值给一个变量
>>> x[1] = 4            #元组是不可变的
TypeError: 'tuple' object does not support item assignment
  1. 元组没有提供append()、extend()和insert()等方法,无法向元组中添加元素;同样,元组也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,而只能使用del命令删除整个元组。
  2. 元组也支持切片操作,但是只能通过切片来访问元组中的元素,而不允许使用切片来修改元组中元素的值,也不支持使用切片操作来为元组增加或删除元素。
  3. 元组缓存于Python运行时环境,每次使用元组时无须访问内核去分配内存。
  4. Python的内部实现对元组做了大量优化,访问速度比列表更快。如果定义了一系列常量值,主要用途仅是对它们进行遍历或其他类似用途,而不需要对其元素进行任何修改,那么一般建议使用元组而不用列表。
  5. 元组在内部实现上不允许修改其元素值,从而使得代码更加安全,例如调用函数时使用元组传递参数可以防止在函数中修改元组,而使用列表则很难保证这一点。
  6. 元组可用作字典的键,也可以作为集合的元素。而列表则永远都不能当作字典键使用,也不能作为集合中的元素。

Python元组与列表详解

传送门:Python列表详解
传送门:Python元组详解

发布了98 篇原创文章 · 获赞 238 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zag666/article/details/104885770