List 列表是Python中的一种序列型数据结构,其中的每个元素都有自己的位置,称为 “下标” 或 “ 索引”。列表中不同的下标指向不同的元素。第一个下标值从 0 开始,最后一个下标值是列表的元素个数减1,也可以是 -1。
定义列表使用成对的方括号 “ [ ] ” ,其中元素之间使用逗号 “,”分隔,列表中各个元素的数据类型可以不同,列如:
list1 = [‘a’, ‘b’, ‘c’, 1, 2]
list2 = [1, 2, 3, 4, 5]
1、访问列表中的元素
需要使用下标,例如:list1[1] 表示取得 list1 列表中的第二个元素,即字符串 ‘b’ ,获取列表中连续的元素可以使用下标范围的方式。(注:Python中所有基于范围的语法都遵循 “左闭右开” 原则,即起始下标对应的元素被包含在内,范围内的最后一个元素是结束下标对应的元素之前的元素。)
因此,list2[2] 对应的元素是 3 ,使用 list2[1:3] 方式只获取到 2和3 两个元素。获取最后的元素可以如下操作:
list1 = ['a', 'b', 'c', 1, 2]
list2 = [1, 2, 3, 4, 5]
print(list1[1]) # b
print(list2[2]) # 3
print(list2[1:3]) # [2, 3]
print(list2[-2:]) # [4, 5]
2、修改列表中元素的值
可以通过为对应下标的元素重新赋值的方法实现,如下:
list2 = [1, 2, 3, 4, 5]
list2[1] = 6
print(list2[1]) # 6
print(list2) # [1, 6, 3, 4, 5]
list2[1:3] = [7, 8] # 遵循 “左闭右开” 原则 ,将第2、3个元素修改成指定的 7、8
print(list2) # [1, 7, 8, 4, 5]
list1 = ['a', 'b', 'c', 1, 2]
# 实际上修改的是第 4 个元素,当新值是 'd', 'e', 'f' 三个字符串,因此最终结果是将第 4 个元素替换成这三个新的元素
list1[3:4] = ['d', 'e', 'f']
print(list1) # ['a', 'b', 'c', 'd', 'e', 'f', 2]
# 将最后一个元素修改成 ’g‘
list1[-1:] = ['g']
print(list1) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
3、删除列表值、清空列表、删除列表
可以使用下标范围的方法删除列表中的元素、清空列表,如下:
list1[3:6] = [] # 删除列表第4 到 第6个元素,即下标为3 到 5的元素
print(list1) # ['a', 'b', 'c', 'g']
list1[:] = [] # 清除报表中的所有元素
print(list1) # []
# 删除列表后再访问,报错信息显示名称list1未定义
del list1
print(list1) # NameError: name 'list1' is not defined
列表支持嵌套,如下:
list3 = [11, 22, 33]
list4 = ['aa', 'bb', 'cc']
x = [list3, list4]
print(x) # [[11, 22, 33], ['aa', 'bb', 'cc']]
与字符串相似,Python的常见运算符对列表也起作用,+ 、*、in等运算符对列表的作用如下所示:
4、列表函数
Python将可以用于列表的函数分为两类,一类是对列表本身进行操作,一类是对列表对象进行操作。
4.1 对列表本身进行操作的函数
line = [1, 2, 3, 4, 5]
print(len(line)) # 5
print(max(line)) # 5
print(min(line)) # 1
4.2 对列表对象进行操作
line1 = ['a', 'b', 'c']
line1.append('d') #列表末尾添加新元素
print(line1) # ['a', 'b', 'c', 'd']
line2 = [1, 2, 3, 2, 2] # 统计列表中特定元素出现的次数
print(line2.count(2)) # 3 ,元素 2 出现 3 次
a = ['a', 'b', 'c']
b = [1, 2, 3]
a.extend(b) # 列表末尾一次性追加另一个序列中的多个值
print(a) # ['a', 'b', 'c', 1, 2, 3]
print(a.index('b')) # 1 ,元素’b‘ 在列表中第一次出现是在下标为 1 的位置
a.insert(2, 'abc') # 在列表指定位置插入一个元素,在第 2 个元素后插入了一个元素
print(a) # ['a', 'b', 'abc', 'c', 1, 2, 3]
a.pop(3) # 移除一个元素,默认移除末尾的元素,这里第 3 个元素后的一个元素被删除了
print(a) # ['a', 'b', 'abc', 1, 2, 3]
c = [1, 2, 2, 4, 5, 4]
c.remove(4)
print(c) # [1, 2, 2, 5, 4] 移除列表中某个值的第一个匹配项
c.reverse()
print(c) # [4, 5, 2, 2, 1] 列表中所有元素反向排列
d = c.copy()
print(d) # [4, 5, 2, 2, 1] 复制一个列表
d.clear()
print(d) # [] 清空列表