Python中列表与元组的区别

2021-04-13 11:34:16
> 列表(list)与元组(tuple)都是一种序列结构。 > > 序列按照是否有顺序分为有序序列与无序序列,以及根据序列内的元素是否可以进行增删改等操作分为可变序列与不可变序列。 #### 一、list与tuple相同点 1、都是有序序列。即其内部的元素是有顺序排列的。故也可以进行切片操作。 2、都支持双向索引访问内部元素。 ```python list_a = [1,1,3,1,5] tuple_a = (6,7,6,6,10) print(list_a[0],list_a[-1]) print(tuple_a[1],tuple_a[-2]) 输出结果为: 1 5 7 6 ``` 3、可以使用count()方法统计指定元素出现次数,以及通过index()方法来获取指定元素的索引。还有大量的内置函数以及操作符运算符也能使用。 ```python list_a = [1,1,3,1,5] tuple_a = (6,7,6,6,10) print(list_a.count(1)) print(tuple_a.count(10)) 输出结果为: 3 1 ``` #### 二、list与tuple不同点 1、list属于可变序列,元组属于不可变序列。所以元组不支持元素的增加修改删除等操作。 ```python tuple_a = (6,7,6,6,10) tuple_a.append(3) 运行结果为: AttributeError: 'tuple' object has no attribute 'append' tuple_a[0] = 8 运行结果为: TypeError: 'tuple' object does not support item assignment tuple_a.pop() 运行结果为: AttributeError: 'tuple' object has no attribute 'pop' ``` 2、元组存放于python运行时环境,每次使用元组时,无需去访问内核分配内存 3、python内部实现对元组做了大量优化,故其访问速度比列表更快