标签:python
本文简单记录了Python中的内建函数 sort() 和 sorted() 的使用方法,以及它们在 Python2 和 Python3 中的区别。
内建函数 sort() 和 sorted() 都可以对一个List进行排序,它们的区别是,sort 对 List 本身进行排序(sorts the list in place),没有返回,而 sorted 会返回经过排序后的 list。两者的参数一样,所进行的排序都是稳定的。
>>> l = [2, 4, 6, 1, 3]
>>> l.sort()
>>> l
[1, 2, 3, 4, 6]
>>> l = [2, 4, 6, 1, 3]
>>> sorted(l)
[1, 2, 3, 4, 6]
>>> l
[2, 4, 6, 1, 3]
Python3 中,内建方法 sorted 定义是:
sorted(iterable[, key][, reverse])
其中
示例:
>>> students = [(‘john‘, ‘A‘, 15), (‘jane‘, ‘B‘, 12), (‘dave‘, ‘B‘, 10),]
>>> sorted(students, key=lambda x : x[0])
[(‘dave‘, ‘B‘, 10), (‘jane‘, ‘B‘, 12), (‘john‘, ‘A‘, 15)]
>>> sorted(students, key=lambda x : x[2])
[(‘dave‘, ‘B‘, 10), (‘jane‘, ‘B‘, 12), (‘john‘, ‘A‘, 15)]
>>> sorted(students, key=lambda x : x[2], reverse=True)
[(‘john‘, ‘A‘, 15), (‘jane‘, ‘B‘, 12), (‘dave‘, ‘B‘, 10)]
>>>
>>> d = {‘data1‘:3, ‘data2‘:1, ‘data3‘:2, ‘data4‘:4}
>>> sorted(d.items(), key=lambda x : x[1])
[(‘data2‘, 1), (‘data3‘, 2), (‘data1‘, 3), (‘data4‘, 4)]
Python2 中,内建方法 sorted 定义是:
sorted(iterable[, cmp[, key[, reverse]]])
其中
示例:
>>> sorted(students, cmp=lambda x,y : cmp(x[2], y[2]))
[(‘dave‘, ‘B‘, 10), (‘jane‘, ‘B‘, 12), (‘john‘, ‘A‘, 15)]
Python3 相对于 Python2,去掉了 cmp 参数,简化了函数的使用。对于待比较的两个值如 a 和 b ,只使用 <
符号的比较结果。
标签:python
原文地址:http://blog.csdn.net/gaopenghigh/article/details/46456947