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