欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Effective Python:(11)

Effective Python:(11)

2025/2/12 15:24:55 来源:https://blog.csdn.net/earthzhang2021/article/details/145522959  浏览:    关键词:Effective Python:(11)

Effective Python:(11)

Effective Python提供90条实用编程技巧,让我们解决常见问题时可以采用新颖并高效的做法。排序就是其中一个经典的,常见的,但又有些复杂需求的算法。所以今天描述的需求会有些复杂。

python中内置sort方法来解决可以有顺序的数据类型的排序,但是对于一般的不能进行大小比较的对象类型,也需要自己给sort方法传递key参数来表明用什么属性排序。

如何实现这个key参数呢?需要用到lambda关键字构造一个函数,并返回我们要用到属性名称做为key参数。

接下来遇到的问题就是如何用多个属性进行排序,比如先按A排序再按B排序,这里面推荐用元组来实现,即通过lambda构建一个返回值是元组的函数,这样key是元组就可以实现多属性排序。

接下来又遇到问题是如果一个属性要升序,一个属性要降序怎么办,对于可计算属性在lambda函数中采用一元减操作符来取反实现反序。

问题又来了,如果要反序的属性不是可计算的不能加负号怎么办,这里又推荐了一种终极办法,但又是最简单的办法,就是对于同一个列表上多次调用sort方法,一次处理一个属性排序,这个其实也是最通用的算法实现!

#学习指导#

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com