Python 算法-sorted方法总结

最近写了挺多排序相关的题的,借此对于排序方法做一个总结

1. 基本的排序的list.sort和sorted方法

Python 算法-sorted方法总结_第1张图片

执行了一下,好像看起来,没啥差别呢,是不是这两个就可以平换替用呀,那再让我们看看下面的

Python 算法-sorted方法总结_第2张图片

发现了吧,这个就是入门很容易错的问题,sorted对可迭代对象进行排序之后,不会改变对象本身的值,而是返回一个排序完之后的列表,所以使用时,需要记得用一个对象接收,同时对于sorted来说,它的适用范围也比list.sort方法更广阔,因为它不仅使用于列表,同时适用于特殊的嵌套列表,且可以使用关键字来自定义排序规则.

2.sorted关键字排序

这个时候突然来了一个二维列表list_=[[1,3],[3,2],[2,1]],我们想根据嵌套列表内第一个关键字进行排序,这时就可以使用我们的lambda 构造一个关键字来进行排序了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29wZGk=,size_20,color_FFFFFF,t_70,g_se,x_16

 同理,如果想要根据第二个关键字进行排序可以写成

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29wZGk=,size_20,color_FFFFFF,t_70,g_se,x_16

 这里的原理,其实就是选择你要参考的值时哪里,你要比对的是列表内的第二个值,你就把所有的第二个值取出来,然后进行比较后,返回下标给list_,然后list_根据下标的改变,发生移动,从而完成了改变

3.soted多关键字排序

这个主要是应用在特殊场景内,假定来了一个成绩单,score_list=[{"math":12,"cn":10},{"math":12,"cn":13},{"math":14,"cn":10},{"math":11,"cn":15}],让你根据math成绩进行排序,这是你发现有两个学生的数学是一样的捏,都是12分,那咋办?,那边教务局说那就按照语文成绩来,这就是多关键字的情况了,这个时候我们可以使用operator内带的itemgetter,来帮助我们啦

Python 算法-sorted方法总结_第3张图片

 这样我们顺利的完成任务了

4.对于字符串排序的处理

也不一定每次都能来整数类型,这个时候来了字符串对象,那么我们又该怎么处理呢,比如这个时候来了一个字符串"三思而后行" string_="One Two Three Go",我们怎么给他排序呢,我们可以把他们都处理为小数,然后根据其字符的ASCLL码,进行比对就可以判断出来了

Python 算法-sorted方法总结_第4张图片

 暂时先这样,后续还会继续跟新相关排序技巧的

你可能感兴趣的:(蓝桥杯,python)