sort和sorted
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list
上的方法,sorted 可以对所有可迭代的对象
进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
-
iterable -- 必需,表示要排序的可迭代对象,例如列表、元组、字符串等。
-
key -- 可选,用于指定一个函数,它会应用到可迭代对象的每个元素上,并根据函数的返回值进行排序。默认值为None,表示直接比较可迭代对象的元素。
-
reverse -- reverse:可选,是一个布尔值,用于指定排序顺序。如果设置为True,则按降序排序;如果设置为False,则按升序排序。默认为False。
返回值
返回重新排序的列表。
实例
以下实例展示了 sorted 的使用方法:
>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]
>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1]) # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>>
参考1:https://www.runoob.com/python/python-func-sorted.html
参考2:https://docs.python.org/3/howto/sorting.html#sortinghowto
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17387396.html