Python-内置排序(sort() and sorted())

描述

sort 与 sorted 区别:

sort 是应用在 list 上的方法,list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值

sorted 可以对所有可迭代的对象进行排序操作,返回的是一个新的 list,而不是在原来的基础上进行的操作。

 

sort语法与实例

sort()方法语法:

list.sort(cmp=None, key=None, reverse=False)

  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

 

sort()方法实例:

常用方式

list = [('Tom','b',3),('Jerry','c',2),('Spike','a',4)]
list.sort() #[('Jerry', 'c', 2), ('Spike', 'a', 4), ('Tom', 'b', 3)]

 

使用key(效率远高于cmp,所以cmp基本不用)

list = [('Tom','b',3),('Jerry','c',2),('Spike','a',4)]
list.sort(key=lambda k:k[2]) #[('Jerry', 'c', 2), ('Tom', 'b', 3), ('Spike', 'a', 4)]

 

sorted语法

sorted 语法:

sorted(iterable, cmp=None, key=None, reverse=False)

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

 

sorted实例:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2], reverse=True)       # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

 

使用方式:

sort与sorted优先使用sort,key与cmp优先使用key

posted @ 2022-04-05 17:01  SiNanhong  阅读(98)  评论(0编辑  收藏  举报