列表和元组
一 、列表
1列表的取值
(1)按索引取值,取出来与元素本身的数据类型一致
li=[1,2,(5,4,3),9,4,0] l1=li[1:8] print(l1) 结果为:[2, (5, 4, 3), 9, 4, 0]
li=[1,2,(5,4,3),9,4,0] l2=li[2] print(l2) 结果为:(5, 4, 3)
(2)按切片取值,取出来的是小列表
li=[1,2,(5,4,3),9,4,0] l3=li[0:3] print(l3) 结果为:[1, 2, (5, 4, 3)]
2 列表的增加
(1)追加 append()
lis=['zhangsan','lisi','sunwukong'] list1=lis.append('zhubajie') print(lis) 结果为:['zhangsan', 'lisi', 'sunwukong', 'zhubajie']
(2)按索引插入 inset()
lis=['zhangsan','lisi','sunwukong'] list2=lis.insert(1,'zhubajie') print(lis)
结果为:['zhangsan', 'zhubajie', 'lisi', 'sunwukong']
(3)extend
list.extend(sequence) 把一个序列seq的内容添加到列表中
lis=['zhangsan','lisi','sunwukong'] abc=[1,2,3] lis.extend(abc) print(lis) 结果为:['zhangsan', 'lisi', 'sunwukong', 1, 2, 3]
3 列表的删除
(1)按照索引删除 pop()
不知道索引,Python3.5以后版本默认删除最后一个元素
lis=['zhangsan','lisi','sunwukong','duanyu'] lis.pop() print(lis) 结果为:['zhangsan', 'lisi', 'sunwukong']
指定索引,并删除
lis=['zhangsan','lisi','sunwukong','duanyu'] lis.pop(1) print(lis) 结果为:['zhangsan', 'sunwukong', 'duanyu']
(2)按照元素去删除 remove()
lis=['zhangsan','lisi','sunwukong','duanyu'] lis.remove('lisi') print(lis) 结果为:['zhangsan', 'sunwukong', 'duanyu']
(3)按切片删除 del
lis=['zhangsan','lisi','sunwukong','duanyu'] del lis[0:2] print(lis) 结果为:['sunwukong', 'duanyu']
(4)清空列表 clear()
lis=['zhangsan','lisi','sunwukong','duanyu'] lis.clear() print(lis) 结果为:[]
4 列表的修改
(1)按照索引修改
lis=['zhangsan','sunwukong','duanyu','shipotian'] lis[0]='王麻子' print(lis) 结果为:['王麻子', 'sunwukong', 'duanyu', 'shipotian']
(2)按照切片去修改
按切片修改是会吧切片当成一个元素处理,把给定的字符串当做多个字符分别处理
lis=['zhangsan','sunwukong','duanyu','shipotian'] lis[0:3]='dingdian' print(lis) 结果为:['d', 'i', 'n', 'g', 'd', 'i', 'a', 'n', 'shipotian']
lis=['zhangsan','sunwukong','duanyu','shipotian'] lis[1:3]='abc' print(lis) 结果为:['zhangsan', 'a', 'b', 'c', 'shipotian']
(3)加步长,必须意义对应
lis=['zhangsan','sunwukong','duanyu','shipotian'] lis[0:3:2]='ab' print(lis) 结果为:['a', 'sunwukong', 'b', 'shipotian'],既就是把索引为0的元素修改为"a"、索引为2的元素修改为"b"。
5 列表的查找
(1)按照索引查找
lis=['zhangsan','sunwukong','duanyu','shipotian'] print(lis[1]) 结果为:sunwukong
(2)按照切片查找
lis=['zhangsan','sunwukong','duanyu','shipotian'] print(lis[1:3]) 结果为:['sunwukong', 'duanyu']
(3)按照切片加步长查找
lis=['zhangsan','sunwukong','duanyu','shipotian','renwoxing'] print(lis[1:4:2]) 结果为:['sunwukong', 'shipotian']
(4)遍历列表 for
lis=['zhangsan','duanyu','shipotian','renwoxing'] for i in lis: print(i) 结果为: zhangsan duanyu shipotian renwoxing
(5)列表总长度 len()
lis=['zhangsan','duanyu','shipotian','renwoxing'] print(len(lis)) 结果为:4
(6)统计列表中某个元素出现的次数 count()
lis=['zhangsan','rw','duanyu','shipotian','rw'] print(lis.count('rw')) 结果为:2
(7)正序排列 sort()
list1=['9','1','2','5','3',] list1.sort() print(list1) 结果为:['1', '2', '3', '5', '9']
(8)倒叙排列 list.sort(reverse=True)
list1=['9','1','2','5','3',] list1.sort(reverse=True) print(list1) 结果为:['9', '5', '3', '2', '1']
(9)列表的翻转
list1=['9','1','2','5','3',] list1.reverse() print(list1) 结果为:['3', '5', '2', '1', '9']
6 列表的嵌套
(1)将yangguo变成Yangguo
list1=['1','3','yangguo',['limochou','zhoubotong',1000],666] list1[2]=list1[2].capitalize() print(list1) 结果为:['1', '3', 'Yangguo', ['limochou', 'zhoubotong', 1000], 666]
(2)将"zhoubotong 全部变为大写"
list1=['1','3','yangguo',['limochou','zhoubotong',1000],666] list1[3][1]=list1[3][1].upper() print(list1) 结果为:['1', '3', 'yangguo', ['limochou', 'ZHOUBOTONG', 1000], 666]
(3)通过数字减1 的方式将1000变为999
list1=['1','3','yangguo',['limochou','zhoubotong',1000],666] list1[3][-1]=str(list1[3][-1]-1) print(list1) 结果为:['1', '3', 'yangguo', ['limochou', 'zhoubotong', '999'], 666]
7 列表去重
l1=[1,2,2,1,3,4,5] print(list(set(l1))) 结果为: [1, 2, 3, 4, 5]
二、元组
元组为只读列表
1 元组的读取
可按照索引、切片、切片加步长
tuple1=(1,2,3,4,'linchong','likui') print(tuple1[1]) print(tuple1[0:2]) print(tuple1[1:5:2])
结果为:
1 2 2 (1, 2) 3 (2, 4)
2 元组不可修改,但是元组里边可修改的元素却可以改
tuple2=(1,2,3,[1,3,5],4) tuple2[3].append(888) print(tuple2) 结果为:(1, 2, 3, [1, 3, 5, 888], 4)
三、 range() 函数可创建一个整数列表,一般用在 for 循环中
Python3.x 中 range() 函数返回的结果是一个整数序列的对象,而不是列表。
print(range(4)) print(list(range(4))) 结果为: range(0, 4) [0, 1, 2, 3]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!