五、Python第五课——Python中组织列表的相关函数

目录

一、用sort()函数对列表进行永久排序

二、用sorted()函数对列表进行临时排序 

三、用reverse()函数对列表进行列表原始排序的逆序输出

四、使用len()函数确定列表长度


       创建列表后,内部的元素逐渐增多,其排列顺序也是无法预测的,因为用户并非总能控制用户提供数据的顺序。由此,我们经常需要以特定的顺序呈现信息。

一、用sort()函数对列表进行永久排序

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()函数对列表进行临时排序 

可以使用sorted()函数对列表进行临时排序,不影响他们在列表中的原始排序 

 代码说明:

cars=["BMW","Audi","Toyota","Subaru"]
print("这是原始序列:")
print(cars)#打印原始列表
print("这是按字典序排序后的临时序列:")
print(sorted(cars))#打印排序后的列表
print("再次输出原始序列:(证明是不改变原始序列的排序)")
print(cars)#再次输出原始序列说明没有变化

 

当然也可以向sorted()函数传递按字典序逆序排序,上述代码修改成如下代码即可:

print(sorted(cars,reverse=True))#打印排序后的列表

三、用reverse()函数对列表进行列表原始排序的逆序输出

 正如函数名“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()函数确定列表长度

想要尽快知道列表的长度(列表中元素的数量),就需要使用len()函数!

代码举例:

cars=["BMW","Audi","Toyota","Subaru"]
print("cars列表的长度为:",len(cars))

 这里的计数是从1开始的,所以不会出现“列表元素的数量”差“1”的现象

 本节课的内容较少,但是需要慢慢消化。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liO_Oil

打赏我,开启隐藏模式。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值