python中的列表
一、数据结构
python中提供了4个内置数据结构:列表、元组、字典、集合
1.其中有2个有序的集合数据结构为:列表和元组
列表:有序且可变的对象集合,每一个元素从0开始编号,可以通过增加、修改、删除对象对列表进行修改
元组:有序不可变的对象集合,每一个元素从0开始编号,是一个常量列表,一旦向一个元组赋对象,就不能改变
2.无序的数据结构:字典
字典:无序的键\值对集合,字典是无序可变的
3.避免重复的数据结构:集合
集合:无序可变的唯一对象集合,其中的对象不会重复,且可以完成交集、并集和差集的操作,也可以根据需要扩展和收缩
二、列表的增删改查
1.创建:
1)列表里的对象是异构的,可以是整数、字符串、浮点数(带引号的都是字符串)
stus = ['王月',12,'宋雪艳',12.1,'王何','12']
2)字符串转为list 强转
1 2 3 4 | s = '王月、张娜、宋雪艳、刘姐、王何、程月香' print ( list (s)) 运行结果: [ '王' , '月' , '、' , '张' , '娜' , '、' , '宋' , '雪' , '艳' , '、' , '刘' , '姐' , '、' , '王' , '何' , '、' , '程' , '月' , '香' ] |
2.扩展(新增)
1)append(元素):入参为元素,默认再列表尾部新增一个元素,入参为空表示什么也不做
1 2 3 4 5 6 | stus = [ '王月' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] stus.append( '唐玉亮' ) print (stus) 运行结果: [ '王小月' , '徐静' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' , '唐玉亮' ] |
2)extend(x):X为一个列表,默认再列表尾部新增一个列表,入参为空[]表示什么也不做,跟append类似
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' ] stus.extend([ 'MLing' , 1 , 12.11 ]) print (stus) 运行结果: [ '王小月' , '张娜' , '宋雪艳' , 'MLing' , 1 , 12.11 ] |
3)inserd(x,y):x为下标,y为元素表示再x处增加元素y
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] #下标、角标、索引 stus.insert( 1 , '徐静' ) print (stus) 运行结果: [ '王小月' , '徐静' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] |
3.收缩(删除)
1)remove(X):X为元素,删除列表中的元素x,注意x不存在时会报错
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' ] stus.remove( '王月' ) print (stus) 运行结果: [ '张娜' , '宋雪艳' ] |
2)pop(x):x为下标,不传入参的时候,默认弹出列表的最后一项
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' ] stus.pop( 1 ) print (stus) 运行结果: [ '王月' , '宋雪艳' ] |
3)dle name[x]:列表是列表名,x是下标
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' ] del stus[ 0 ] print (stus) 运行结果: [ '张娜' , '宋雪艳' ] |
4)name.clear():name是列表名,表示清空列表
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' ] stus.clear() #清空列表 print (stus) 运行结果: [] |
4.修改
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] #下标、角标、索引 stus[ 0 ] = '王小月' print (stus) 运行结果: [ '王小月' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] |
5.查询
1 2 3 4 5 | stus = [ '王月' , '张娜' , '宋雪艳' , '刘姐' , '王何' , '程月香' ] #下标、角标、索引 stus[ 0 ] = '王小月' print (stus[ 0 ]) 运行结果 王小月 |
三、列表的常用方法
1.copy
1 2 3 4 5 6 7 8 9 10 11 | # print(l2.count(1)) # print(l2.index(77))#找下标 # l2.sort(reverse=True) # # print(l2) # l3 = l2.copy()#复制一个list # l2.extend(stus) # print(l2) # stus.sort() # stus.copy() # stus.extend() #合并两个list # stus.reverse() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)