Python从入门到上瘾08——列表的高级操作

本文介绍了Python列表的高级操作,包括“+”与“*”运算、切片、排序以及常用的列表函数,如max、min、count、index和reverse。通过实例解析了这些操作的使用方法和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权申明:原创文章,未经博主同意,不得转载!

Python从入门到上瘾08——列表的高级操作

小白高效学习Python系列,50小时学会Python “ 阅读本文需要大约7分钟。”

列表(List)是Python语言中一类重要数据类型。上一期讲解了《列表的基本操作》,本期主要说明列表的一些高级操作的用法。

列表的“+”与“*”运算

如果你已经忘了列表的基本含义,可以参见上一期内容《列表的基本操作》

初学者乍一看,觉得很奇怪,列表不就是类似于C语言中的数组么。怎么还会有“+”与“*”操作。其实,你看过下面一段代码,你就明白了。

list1 = [1,3,5]
list2 = [2,4,6]
print(list1+list2) # 运行结果为:[1, 3, 5, 2, 4, 6]
print(list1) #list1仍为[1, 3, 5]

可以看到,列表的”+“运算,实际上就是在原有列表上拼接新的列表。

需要注意的是,在Python中,有另外一个函数extend()的作用与此类似,都是在原有列表尾部拼接新的列表。

list1 = [1,3,5]
list2 = [2,4,6]
list1.extend(list2)
print(list1) # 运行结果为:[1, 3, 5, 2, 4, 6]

注意,但是list1利用extend()进行拼接以后,发生变化。而使用”+“拼接,原有列表未发生变化。

列表的”“运算列表的”“运算,实际就是对原有列表按倍数进行重复,看下面一段代码。

list1 = ['good']
print(list1*3) #运行结果为:['good', 'good', 'good']

列表的切片

切片这一概念我们在字符串那一章节已经接触过,参见《整型、字符串数据类型》。实际上,在Python中所有有序序列都支持切片(slice),如列表,字符串,元组等。
切片格式如下:
格式:【start: end: step】,其中 start:起始索引,从0开始,-1表示结束;end:结束索引;step:步长,步长为正时,从左向右取值。步长为负时,反向取值。看如下代码

a=[1,2,3,4,5,6]
b1=a[:] #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表
print(b1) # 结果:[1, 2, 3, 4, 5, 6]
​
b=a[0:-1:1] #从位置0开始到结束,每次增加1,截取。不包含结束索引位置
print(b)  # 结果:[1, 2, 3, 4, 5]
​
c1=a[:3] #省略起始位置的索引,以及步长。默认起始位置从头开始,默认步长为1,结束位置索引为3
print(c1) # 结果:[1, 2, 3]
​
c=a[0:5:3] #从第一个位置到第6位置,每3个取一个值
print(c) # 结果:[1, 4]
​
d=a[5:0:-1] #反向取值
print(d) # 结果:[6, 5, 4, 3, 2]
​
d1=a[::-1] # 逆序
print(d1) # 结果:[6, 5, 4, 3, 2, 1] 

需要注意的是,切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引。

列表的排序

当需要对列表中的元素进行排序的时候,可以使用list.sort([func]),其中[func]为可选参数。如果列表中的元素为字符串,则根据字母排序决定大小。看下面代码。

list1 = ['z','a','b']
list1.sort()
print(list1) # 结果:['a', 'b', 'z']
list1.sort(reverse= True) #逆序排序
print(list1) # 结果['z', 'b', 'a']

注意到,排序后原列表元素永久改变了;如果只是希望暂时排序列表,而原列表元素不受影响可以使用sorted( )函数。看下面代码。

list1 = ['z','a','b']
print(sorted(list1)) # 结果:['a', 'b', 'z']
print(list1) # 结果['z', 'b', 'a']

针对列表元素的常用函数

  • 在Python中可以通过函数max( ),以及min( )来获取列表中的最大,最小元素;如果列表中的元素为字符串,则根据首字母排序决定大小。看下面一段代码。
list1,list2 = ['z','a','b'],[4,3,1,7]
print(min(list1)) # 运行结果为:a
print(max(list2)) # 运行结果为:7
  • 统计列表中某个元素出现的此数,list.count(obj)。看下面代码。
list1 = [1,3,5,5,5]
print(list1.count(5)) #输出结果:3
  • 获取列表中某个元素出现的位置,list.index(obj)。看下面代码。
list1 = [1,3,5,5,5]
print(list1.index(3))  #输出结果:1
  • 倒序输出列表,list.reverse( )。看下面代码。
list1 = ['z','a','b']
list1.reverse()
print(list1)  # 输出结果:['b', 'a', 'z']
  • 获取列表长度,len(list)。看下面代码。
list1 = ['z','a','b']
print(len(list1)) # 输出结果:3

本期到此结束,扫下面二维码加Python学习公众号,有海量优质资源免费领取!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值