创建列表后,内部的元素逐渐增多,其排列顺序也是无法预测的,因为用户并非总能控制用户提供数据的顺序。由此,我们经常需要以特定的顺序呈现信息。
sort()函数可以帮助我们较为方便的对列表进行排序,有如下特点:
sort函数的原型为:sort(self,key,reverse=False),可以看出有三个参数!(这里的reverse=False是默认的,所以直接为最后一个参数赋值了)
self:参数self是表明该sort函数是使用何种算法进行排序的,一般是归并排序。目前,我们还无需重写此参数,所以在使用时可以忽略此函数
key:参数key用来指定一个函数,此函数代表排序的规则(也就是你按照什么规则对你的序列进行排序),在每次排序时调用;
reverse:参数reverse是用来表明是否逆序,默认是等于False,按照升序的规则进行排序的。当reverse=True时,便会按照降序进行排序。我们一般经常修改此参数。
代码说明:
cars=["BMW","Audi","Toyota","Subaru","BYD"]
print(cars)#打印列表
cars.sort()#按字母顺序排序
print(cars)#打印排序后的列表
cars.sort(reverse=True)#按字母顺序的逆序排序
print(cars)#打印排序后的列表
注:在排序时,如果列表中元素开头字母,大小写不一致,那么调用此函数后的排序效果可能不是大家所想的那样!
有如下实验:假如元素开头字母相同,则何如?
cars=["BBM","BDC","BDA","BYD"]
print(cars)#打印列表
cars.sort()#按字母顺序排序
print(cars)#打印排序后的列表
由上述实验可以看出,在字母大小写一致的情况下,以字典序为例:sort()函数会先比较各个元素的首字母,如果发现元素的首字母相同,则会比较第二个字母,其他同理。总之排序之后的结果一定是:元素首字母不同,则是字典序;首字母相同的,第二个字母是字典序!
可以使用sorted()函数对列表进行临时排序,不影响他们在列表中的原始排序
代码说明:
cars=["BMW","Audi","Toyota","Subaru"]
print("这是原始序列:")
print(cars)#打印原始列表
print("这是按字典序排序后的临时序列:")
print(sorted(cars))#打印排序后的列表
print("再次输出原始序列:(证明是不改变原始序列的排序)")
print(cars)#再次输出原始序列说明没有变化
当然也可以向sorted()函数传递按字典序逆序排序,上述代码修改成如下代码即可:
print(sorted(cars,reverse=True))#打印排序后的列表
正如函数名“reverse”,这个函数的功能就是将列表中的元素“翻转”。例如:list=["A","B","C"],使用rverse()函数后,列表变为list=["C","B","A"]。这种“翻转”是永久的,如果想要恢复到原来的顺序,再次使用以下本函数就OK了!有如下代码:
cars=["BMW","Audi","Toyota","Subaru"]
print("这是原始序列:")
print(cars)#打印原始列表
cars.reverse()
print("这是”翻转“后的序列:")
print(cars)
想要尽快知道列表的长度(列表中元素的数量),就需要使用len()函数!
代码举例:
cars=["BMW","Audi","Toyota","Subaru"]
print("cars列表的长度为:",len(cars))
这里的计数是从1开始的,所以不会出现“列表元素的数量”差“1”的现象
本节课的内容较少,但是需要慢慢消化。