我是靠谱客的博主 懵懂飞鸟,最近开发中收集的这篇文章主要介绍python字符串长度排序算法_从零开始学Python-Day28-sorted排序算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

排序是程序中经常用到的一种算法,无论是冒泡排序还是选择排序,排序的核心就是不断比较两者大小。排序算法的示例可以看这里:http://t.cn/A6ZomOGj

数值的比较很好理解,但如果是字符串呢?或者是dict呢?这时就需要把比较过程通过函数抽象表达出来,Python自带sorted函数就可以对list进行排序:

>>> sorted([-45,5,1,-10,9,81,-90])

[-90, -45, -10, 1, 5, 9, 81]

sorted函数同时也是一个高阶函数,可以接收一个函数做key来进行自定义排序,例如我们用abs做key,将序列按绝对值大小排序:

>>> sorted([15,-20,60,-75,13,-2], key=abs)

[-2, 13, 15, -20, 60, -75]

请注意,key只负责中间运算,返回的排序结果依然是之前list中的数,整个过程可以理解为list先按照key函数abs计算生成一个对应顺序的新的序列keys,sorted排序后,将keys中每个元素对应的原序列中的元素再封装到新的list,如下所示,list依然是原来的内容,sorted函数相当于生成了一个全新的list:

>>> list = [15,-20,60,-75,13,-2]

>>> sorted(list, key=abs)

[-2, 13, 15, -20, 60, -75]

>>> list

[15, -20, 60, -75, 13, -2]

我们再看一个字符串排序的例子:

>>> sorted(['Hello','Anna','is','a','girl'])

['Anna', 'Hello', 'a', 'girl', 'is']

细心的朋友可能已经发现了,字符串的排序是按照ASCII编码的大小进行的大写在前,小写在后。如果我们要忽略大小写呢?我们知道sorted是个高阶函数,可以传入key函数,将字符串忽略大小写:

>>> sorted(['Hello','Anna','is','a','girl'], key=str.lower)

['a', 'Anna', 'girl', 'Hello', 'is']

如果要反向排序,可以传入第三个参数reverse:

>>> sorted(['Hello','Anna','is','a','girl'], key=str.lower, reverse=True)

['is', 'Hello', 'girl', 'Anna', 'a']

最后

以上就是懵懂飞鸟为你收集整理的python字符串长度排序算法_从零开始学Python-Day28-sorted排序算法的全部内容,希望文章能够帮你解决python字符串长度排序算法_从零开始学Python-Day28-sorted排序算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部