列表元素增删改排操作
一、列表元素的增加操作
- append():在列表的末尾添加一个元素
- extend():在列表的末尾至少添加一个元素
- insert():在列表的任意位置添加一个元素
- 切片:在列表的任意位置添加至少一个元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #append():向列表的末尾添加一个元素 lst=[10,20,30] print( '添加元素前:' ,lst,id(lst)) lst.append(100) print( '添加元素后:' ,lst,id(lst)) lst.append( '100' ) print( '添加元素后:' ,lst,id(lst)) lst2=[ 'hello' , 'world' ] lst.append(lst2) print( '添加元素后:' ,lst,id(lst)) #[10, 20, 30, 100, '100' , [ 'hello' , 'world' ]] 1943091429504 lst2以一个元素的形式添加到lst中 #extend():向列表的末尾添加多个元素 lst.extend(lst2) print(lst) #[10, 20, 30, 100, '100' , [ 'hello' , 'world' ], 'hello' , 'world' ] lst中添加多个元素 #insert():在任意位置添加一个元素 lst.insert(1,90) print(lst) #[10, 90, 20, 30, 100, '100' , [ 'hello' , 'world' ], 'hello' , 'world' ] 在序号为1的位置添加元素90 #切片操作:在任意的位置上添加多个元素 lst3=[ '小秦同学在上学' , '喜欢和牛奶' ] lst[1::]=lst3 #lst切片后面的数据全部被替代 [10, '小秦同学在上学' , '喜欢和牛奶' ] print(lst) |
二、列表元素的删除操作
1、remove()
- 一次删除一个元素
- 重复元素只删除第一个
- 元素不存在抛出ValueError
1 2 3 4 5 6 7 8 9 10 | lst=[10,20,30,40,50,60,30] print(lst) lst.remove(30) #从列表中删除一个元素,如果有重复元素则只移动第一个元素 print(lst) #st.remove(100) #ValueError: list.remove(x): x not in list 列表中不存在该元素 运行结果: [10, 20, 30, 40, 50, 60, 30] [10, 20, 40, 50, 60, 30] |
2、pop()
- 删除一个指定索引位置上的元素
- 指定索引不存在抛出IndexError
- 不指定索引,删除列表中最后一个元素
1 2 3 4 5 6 7 8 9 10 11 12 | print(lst) lst.pop() #pop()如果不指定索引就删除列表最后的一个元素 print(lst) lst.pop(0) #删除索引号为0的元素,也就是第一个元素 print(lst) #lst.pop(100) #IndexError: pop index out of range 越界,pop报错 运算结果: [10, 20, 40, 50, 60, 30] [10, 20, 40, 50, 60] [20, 40, 50, 60] |
3、切片:一次至少删除一个元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | print( "切片删除操作——产生一个新的对象" ) print(lst) new_lst=lst[0::2] print(new_lst) #即使用新切片产生后的列表代替原列表使用 print( "切片删除操作——没有产生新的对象" ) print(lst) lst[1:3]=[] #用空列表来代替位点 print(lst) 运算结果: 切片删除操作——产生一个新的对象 [20, 40, 50, 60] [20, 50] 切片删除操作——没有产生新的对象 [20, 40, 50, 60] [20, 60] |
4、clear():清空列表
1 2 3 4 5 6 7 8 | print(lst) lst.clear() #清空列表元素 print(lst) 运行结果: [20, 60] [] |
5、del:删除列表
1 2 | del lst print(lst) #NameError: name 'lst' is not defined 报错,显示未被定义,因为已经被删除了 |
三、列表元素的修改操作
- 为指定索引的元素赋予一个新值
- 为指定的切片赋予一个新值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | lst=[10,20,30,40] print(lst) print(lst[2]) lst[2]=100 print(lst) #使用切片批量修改 lst[1:3]=[300,400,500,600] print(lst) 运行结果: [10, 20, 30, 40] 30 [10, 20, 100, 40] [10, 300, 400, 500, 600, 40] |
四、列表元素的排序操作
- 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True进行降序排序
- 调用内置函数sorted(),可以指定reverse=True,进行降序排列,原排列不发生变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #使用sort()方法进行排序,不会生成新的列表 lst=[20,40,10,98,54] print( '排序前:' ,lst,id(lst)) lst.sort() #默认为升序排序 print( '排序后:' ,lst,id(lst)) lst=[20,40,10,98,54] print( '排序前:' ,lst,id(lst)) lst.sort(reverse=True) #reverse=True时,即是设置为逆排序 print( '排序后:' ,lst,id(lst)) #使用sorted()对列表进行排序,将会产生一个新的列表对象 lst=[20,40,10,98,54] print( '原列表:' ,lst) new_lst=sorted(lst) print(lst) print(new_lst) #指定关键字参数,实现列表元素的降序排列 desc_list=sorted(lst,reverse=True) print(desc_list) 运算结果: 排序前: [20, 40, 10, 98, 54] 1963111628928 排序后: [10, 20, 40, 54, 98] 1963111628928 排序前: [20, 40, 10, 98, 54] 1963115518976 排序后: [98, 54, 40, 20, 10] 1963115518976 原列表: [20, 40, 10, 98, 54] [20, 40, 10, 98, 54] [10, 20, 40, 54, 98] [98, 54, 40, 20, 10] |
五、列表生成
1 2 3 4 5 6 7 8 9 | #列表生成,也就是生成列表的公式 #生成一个一到八列表 lst=[i for i in range(1,9)] print(lst) #[1, 2, 3, 4, 5, 6, 7, 8] #生成2,4,6,8,10的一个列表 lst=[i*2 for i in range(1,6)] print(lst) #[2, 4, 6, 8, 10] |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)