python 排序

93 阅读1分钟

list.sort Versus the sorted Built-In

fluent python 2nd edition

list.sort会用排序后的list将原来的列表,而sorted创建一个新的list并返回。它接受任何的iterable对象,包含不可变对象和生成器。

list.sortsorted都接受两个可选参数。reverse 默认为false,为true时 会按倒序排列。key: one-argument function,作用在每个item上来产生sorting key。如key=str.lower可以用来进行大小写无关的排序。key=len为根据字符的长度进行排序。

下面是一些例子

>>> fruits = ['grape', 'raspberry', 'apple', 'banana']
>>> sorted(fruits)
['apple', 'banana', 'grape', 'raspberry']
>>> fruits
['grape', 'raspberry', 'apple', 'banana']
>>> sorted(fruits, reverse=True)
['raspberry', 'grape', 'banana', 'apple']
>>> sorted(fruits, key=len)
['grape', 'apple', 'banana', 'raspberry']
>>> sorted(fruits, key=len, reverse=True)
['raspberry', 'banana', 'grape', 'apple']
>>> fruits
['grape', 'raspberry', 'apple', 'banana']
>>> fruits.sort()
>>> fruits
['apple', 'banana', 'grape', 'raspberry']