Python列表类型
来自CloudWiki
目录
列表的定义
列表是包含0个或多个元组组成的有序序列,属 于序列类型。
列表可以元素进行增加、删除、替 换、查找等操作。
列表没有长度限制,元素类型 可以不同,不需要预定义长度。
列表类型用中括号([])表示,也可以通过list(x) 函数将集合或字符串类型转换成列表类型
基础操作
创建列表
- 使用“=”直接将一个列表赋值给变量即可创建列表对象。
>>> a_list = [] #创建空列表 >>> a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
- 也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表。
>>> list((3,5,7,9,11)) #将元组转换为列表 [3, 5, 7, 9, 11] >>> list(range(1, 10, 2)) #将range对象转换为列表 [1, 3, 5, 7, 9] >>> list('hello world') #将字符串转换为列表 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] >>> list({3,7,5}) #将集合转换为列表 [3, 5, 7]</nowiki>
- 两个列表相加:
>>> ls =[1,2,3] >>> lt =[4,5,6] >>> ls = ls + lt >>> print(ls) [1, 2, 3, 4, 5, 6]
列表的索引
- 创建列表之后,可以使用整数作为下标来访问其中的元素,其中0表示第1个元素,1表示第2个元素,2表示第3个元素,以此类推;列表还支持使用负整数作为下标,其中-1表示最后1个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。
>>> x = list('Python') #创建类别对象 >>> x ['P', 'y', 't', 'h', 'o', 'n'] >>> x[0] #下标为0的元素,第一个元素 'P' >>> x[-1] #下标为-1的元素,最后一个元素 'n'
列表的切片
切片是列表的基本操作,用于获得列表的一个片 段,即获得一个或多个元素。
切片后的结果也是 列表类型。
切片有两种使用方式:
- <列表或列表变量>[N: M] :获取从N到M(不包含M)的元素组成新 的列表。
- <列表或列表变量>[N: M: K] :获取从N到M(不包 含M)以K为步长所对应元素组成的列
>>> d [1, 2, 3, 4, 5] >>> d[0] 1 >>> d[-1] 5 >>> d[1:4] [2, 3, 4] >>> d[1:3] [2, 3] >>> d[1:] [2, 3, 4, 5] >>> d[:3] [1, 2, 3] >>> d[-3:-1] [3, 4] >>> d[0:4] [1, 2, 3, 4] >>> d[0:4:2] [1, 3]
列表的遍历
可以使用遍历循环对列表类型进行遍历操作
- 按元素遍历:
for s in d: print(s)
1 2 3 4 5
- 按索引遍历:
for i in range(0,len(d)): print(d[i])
1 2 3 4 5
列表对象支持的运算符
加法运算符
- 加法运算符+也可以实现列表增加元素的目的,但不属于原地操作,而是返回新列表,涉及大量元素的复制,效率非常低。使用复合赋值运算符+=实现列表追加元素时属于原地操作,与append()方法一样高效。
>>> x = [1, 2, 3] >>> id(x) 53868168 >>> x = x + [4] #连接两个列表 >>> x [1, 2, 3, 4] >>> id(x) #内存地址发生改变 53875720 >>> x += [5] #为列表追加元素 >>> x [1, 2, 3, 4, 5] >>> id(x) #内存地址不变 53875720
乘法运算符
- 乘法运算符*可以用于列表和整数相乘,表示序列重复,返回新列表。运算符*=也可以用于列表元素重复,属于原地操作。
>>> x = [1, 2, 3, 4] >>> id(x) 54497224 >>> x = x * 2 #元素重复,返回新列表 >>> x [1, 2, 3, 4, 1, 2, 3, 4] >>> id(x) #地址发生改变 54603912 >>> x *= 2 #元素重复,原地进行 >>> x [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] >>> id(x) #地址不变
成员测试运算符in
- 可用于测试列表中是否包含某个元素,查询时间随着列表长度的增加而线性增加,而同样的操作对于集合而言则是常数级的。
>>> 3 in [1, 2, 3] True >>> 3 in [1, 2, '3'] False