python基础 11.列表
列表
为什么需要列表
变量可以存储一个元素,而列表是一个大容器,可以存储n多元素,程序可以方便的对这些数据进行整体操作
列表相当于其它语言中的个数组
列表的创建与删除
列表需要使用中括号[],元素之间使用英文的逗号进行分割
列表的创建
使用中括号创建
1 2 | # ----------列表---------- lst = [ 'python' , 'pycharm' , '', 1 ] |
调用内置函数list()
1 2 | a = list ([ 'python' , 'pycharm' , '', 1 ]) print ( id (a), a, type (a)) |

列表的特点
列表元素按顺序有序排序
索引映射为一个数据
列表可以存储重复数据
任意数据类型混存
根据需要动态分配和回收内存
列表的删除
1 2 3 4 5 6 7 8 | # ---------列表删除---------- lst = [ 'python' , 'pycharm' , '', 1 ] # 按下标删除 del lst[ 2 ] # ['python', 'pycharm', 1] # 按内容删除 lst.remove( 1 ) # ['python', 'pycharm'] # 清空列表 lst.clear() # [] |

列表的查询操作
获取列表中指定元素的索引:index()
如果所查列表中存在多个相同元素,只返回第一个元素的索引
如果查询的元素再列表中不存在,则会抛出ValueError
还可以在指定的start和stop之间进行查找
获取列表中的单个元素
正向索引从0到N-1
逆向索引从-N到-1
指定索引不存,抛出indexError
1 2 3 4 5 6 7 8 | # ----------查询---------- ls = [ 'python' , 'pycharm' , 'aa' , 'c' ] lst = [ 1 , 2 , 10 , 100 , 1 ] print (lst.index( 1 )) # 0,只返回所查元素的第一个的索引 print (lst.index( 2 , 1 , 5 )) # 在下标1-5之间的元素中查找2 print ( len (lst), max (lst), min (lst), list (lst)) # 列表元素个数、列表中最大值 print ( max (ls), min (ls)) print (lst[ 2 ], ls[ - 2 ]) |

获取列表中多个元素
list[start,stop,step]
切片操作
结果:原列表片段的拷贝
范围:[start,stop]
step默认是1
step为正数:
切片的start默认是1,切片的stop默认是最后一个元素
step为负数:
切片的start默认是最后一个元素,切片的stop默认是第一位元素
1 2 3 | # 获取多个元素 print (lst[ 0 : 2 ]) print (lst[ 0 : 4 : 2 ], lst[ - 1 : - 5 : - 2 ]) |
判断指定元素在列表中是否存在
column in list
column not in list
列表元素的遍历
for i in list:
操作
1 2 3 4 | print ( 10 in lst) print ( 100 not in lst) for i in lst: print (i) |

列表的增删改操作
列表元素的增加操作
增加操作
|
方法
|
操作描述
|
append()
|
在列表尾部增加一个元素
|
|
extend()
|
在列表的末尾至少增加一个元素
|
|
insert()
|
在列表的任意位置增加一个元素
|
|
切片
|
在列表的任意位置添加至少一个元素
|
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 列表元素的增加操作 lst = [ 10 , 20 , 30 ] print (lst) lst.append( 50 ) # append,在最后添加50 print ( "1次操作:" + str (lst)) tup = ( '60' , '80' ) lst.extend(tup) # extend,在最后添加tup print ( "2次操作:" + str (lst)) lst.insert( 1 , 15 ) # insert,在下标1的地方添加15 print ( "3次操作:" + str (lst)) lst1 = [ 30 , 40 , 50 ] # 切片,将原列表中2到3的数据删去,使用填充的元素进行添加 lst[ 2 : 3 ] = lst1 print ( "4次操作:" + str (lst)) |

列表元素的删除操作
删除操作
|
方法
|
操作描述
|
remove()
|
一次删除一个元素
|
|
重复的元素只能删除第一个
|
||
元素不存在抛出ValueError
|
||
pop()
|
删除一个指定索引位置上的元素
|
|
指定索引不存在抛出IndexError
|
||
不指定索引删除列表中最后一个元素
|
||
clear()
|
请空列表
|
|
del
|
删除列表
|
|
切片
|
一次至少删除一个元素
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # 列表元素的删除操作 lst = [ 10 , 15 , 30 , 40 , 50 , 30 , 80 ] lst.remove( 50 ) print (lst) lst.pop( 4 ) print (lst) del lst[ - 3 : - 1 ] print (lst) newlst = lst[ 1 : 3 ] # 切片,生成一个新的列表对象 print (newlst) lst[ 1 : 3 ] = [] # 不产生新的列表对象,而是删除原列表中的内容 print (lst) lst.clear() print (lst) del lst # 删除整个列表 print (lst) |

列表元素的修改操作
为指定索引的元素赋予一个新值
为指定的切片赋予一个新值
1 2 3 4 5 6 | # 列表元素的修改操作 lst = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] lst[ 2 ] = 4 print (lst) lst[ 1 : 3 ] = [ 5 , 10 , 15 ] print (lst) |

列表元素的排序
常见的两种方法:
调用sort()方法,列中的所有元素默认按照从小到大的顺序进行排列,可以指定reverse=True来降序排序
调用内置函数sorted(),产生一个新的列表对象,可以指定reverse=True,进行降序排序,愿列表不发生变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # ----------排序---------- # sort lst = [ 2 , 3 , 1 , 5 , 4 , 6 , 8 , 7 ] lst.sort() # 正序排列 print (lst) lst.sort(reverse = True ) # 倒序排列 print (lst) # sorted lst = [ 2 , 3 , 1 , 5 , 4 , 6 , 8 , 7 ] print ( "原列表" + str (lst)) newlst = sorted (lst) print (newlst) newlst = sorted (lst, reverse = True ) print (newlst) |

列表生成式
列表生成式简称‘生成列表的公式’
语法格式:[i*i for i in range(1,10)]
注意事项:‘表示列表元素的表达式’中通常包含自定义变量
1 2 3 | import math lst = [ round (math.sqrt(i * 2 ), 1 ) for i in range ( 1 , 10 )] print (lst) |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报