Python列表类型

来自CloudWiki
123.232.127.2讨论2023年4月10日 (一) 00:38的版本 列表的遍历
跳转至: 导航搜索

列表的定义

列表是包含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'
  • Python6-2.png


列表的切片

切片是列表的基本操作,用于获得列表的一个片 段,即获得一个或多个元素。

切片后的结果也是 列表类型。

切片有两种使用方式:

  • <列表或列表变量>[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