设为首页 加入收藏

TOP

Python的排序:关于sort()与sorted()
2017-03-03 08:15:40 】 浏览:275
Tags:Python 排序 关于 sort sorted

list的一个方法,具有三个参数:cmp,key,reverse(Python3只有后两个)
一个list调用sort方法后,对该list进行排序,不保存原list


参数解释:


调用方法:


在Python2版本中,存在cmp参数,可以自定义比较函数,如:


在Python3中,cmp参数与内置函数cmp()被一并移除,自定义比较函数通过key=func来实现(其实是通过key来定义每一个元素的关键字编码值)。这是因为Python3中不同类型间的比较不再依赖于固定跨类型排序,对不同类型的元素进行排序,首先要将不同类型元素转换为相同类型的编码值,然后才能进行升降排序。


比如一个列表中有不同类型的元素:


由于事先定义了固定的顺序,在Python2中,对含有不同类型元素的List调用sort方法是允许的。
而在Python3中就会引发一个异常:


我们只能把不同元素的关键字编码值设为一致,例如字典序。


Python的一个内置函数,使用方法与list.sort()大体一致,不同在于两个地方:


基于以上两点,sorted使用频率比list.sort()更高些,所以Python中更高级的排序技巧便通过sorted()来演示。


函数原型:
sorted(iterable, key=None, reverse=False) –> new sorted list


list与tuple排序方法与list.sort()大体一致,只不过sorted()不改变原结构:


先引一些资料


由于 key 参数比较常用,所以 Python 内置了一些用来简单、快速生成相关函数的方法, operator 模块提供了 itemgetter,attrgetter, 以及从 Python 2.6 开始提供的 methodcaller 函数。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言数组指针 下一篇华为2017校招C++岗笔试题

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目