从零开始的Python学习 知识补充sorted

Posted 微笑小狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始的Python学习 知识补充sorted相关的知识,希望对你有一定的参考价值。

sorted()方法

sorted()可用于任何一个可迭代对象。

原型为sorted(iterable, cmp=None, key=None, reverse=False)

 

iterable:一个可迭代对象;

cmp:用于比较的函数,比较什么由key决定;

key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;

reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。

(1)cmp参数

cmp接受一个函数,如

def f(a,b)

  return a-b

如果a逻辑小于b,函数返回负数;a等于b,函数返回0;a大于b,函数返回正数。

但是在python3中,cmp参数被淘汰了。但是可以使用key参数实现它的功能,本文后面会有介绍。

(2)key参数

参数key的使用通常配合lambda,这是一个隐函数,使用要按照固定格式:

例如可迭代对象的中的元素是一个元组:key = lambda x:x[0],意思按每一个元组的第0个元素排序。

当然如果可迭代对象中放的是字典,那填上它的键就可以按键对应的值进行排序。

例如:

order=[{no:1,age:18},{no:3,age:19},{no:2,age:20}]
order = sorted(order,key=lambda x:x[no])
print(order)
#输出[{‘no‘: 1, ‘age‘: 18}, {‘no‘: 2, ‘age‘: 20}, {‘no‘: 3, ‘age‘: 19}]

key中还可以使用函数

下面的例子是求按列表中元素与51的距离的大小排序。

order=[98,183,37,122,14,124,65,67]
def f2(a):
    return abs(53-a)
order = sorted(order,key=lambda x:f2(x))
print(order)
#输出[65, 67, 37, 14, 98, 122, 124, 183]

 

(3)reverse参数

接受False 或者True 表示升序或降序。

True代表降序。

 

注意:sorted不会直接修改传进去的可迭代对象,需要用一个新的对象去存它return的结果。

result = sorted(list)

以上是关于从零开始的Python学习 知识补充sorted的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学习PYTHON3讲义计算器升级啦

PYTHON机器学习及实践 从零开始通往KAGGLE竞赛之路pdf

如何从零开始学python

Python机器学习及实践+从零开始通往Kaggle竞赛之路

PYTHON机器学习及实践_从零开始通往KAGGLE竞赛之路pdf

《Python打卡学数据库的第一天》快来跟着小编从零开始学习Redis数据库吧~