在Python中排序与排序方法

时间:2015-03-17 18:01:03

标签: python

我正在处理一些Python任务,并遇到了sorted()方法。我想知道这个功能是什么。任何人都可以解释一下Python中Sort()和Sorted()方法之间的区别是什么?

2 个答案:

答案 0 :(得分:1)

sorted从任何可迭代创建一个新列表:

  

从iterable中的项目返回排序列表。

list.sort就地排序:

  

对列表的项目进行排序(参数可用于排序自定义,请参阅sorted()以获取解释)。

答案 1 :(得分:1)

列表的

.sort()方法对列表进行了排序,而sorted()函数创建了一个新列表。

另请注意,sorted是一个函数,因为sort是一个列表方法:

  

已排序(可迭代[,cmp [,键[,反向]]])

     

从iterable中的项目返回一个新的排序列表。

     

可选参数cmp,key和reverse与list.sort()方法的含义相同(在可变序列类型一节中描述)。

正如您在文档中看到的那样,sorted的第一个参数是iterable,因此您可以将任何可迭代对象传递给它!

>>> t=(3,4,1)
>>> sorted(t)
[1, 3, 4]
>>> sorted(xrange(6),reverse=True)
[5, 4, 3, 2, 1, 0]

>>> l=[('a',7),('f',3),('y',2)]
>>> sorted(l)
[('a', 7), ('f', 3), ('y', 2)]
>>> from operator import itemgetter
>>> sorted(l,key=itemgetter(1))
[('y', 2), ('f', 3), ('a', 7)]