版权申明:原创文章,未经博主同意,不得转载!
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学习公众号,有海量优质资源免费领取!