python提供了对list排序的两种方法
1、使用list内建函数sort排序
list.sort(key=None,reverse=False)
eg:
In [57]: l=[27,47,3,42,19,9]
In [58]: l.sort()
In [59]: l
Out[59]: [3, 9, 19, 27, 42, 47]
上面是直接对 l 列表中的元素进行排序。 sort() 函数还提供了一个关键参数。该参数的值是一个函数。该函数只能有一个返回值,返回值用于比较。这种技术很快,因为 key 指定的函数将为每个元素准确调用。
In [53]: L = [('b',6),('a',1),('c',3),('d',4)]
In [54]: L.sort(key=lambda x:x[1])
In [56]: L
Out[56]: [('a', 1), ('c', 3), ('d', 4), ('b', 6)]
上一段,结合这个例子,我是这样理解的:匿名函数 lambda x:x[1] 等价于:
def f(x):
return x[1]
key参数接受列表L中每个元素的第二个参数,根据第二个参数的排序决定整体排序。也就是说,key参数设置后,key接收到的值代表了整体,排序标准就变成了key接收到的值的排序。
2、使用python内置函数sorted排序
sorted 方法与 sort 方法非常相似,不同之处在于 sorted 不会改变原始列表,而是返回一个排序后的列表。并且 list.sort() 更改原始列表。同样, list.sort() 只能对列表进行排序,而 sorted() 可以对其他数据结构进行排序。
In [62]: l=[27,47,3,42,19,9]
In [63]: sorted(l)
Out[63]: [3, 9, 19, 27, 42, 47]
sorted方法同样可以用key参数,用法也是一样的。
In [68]: data=[{'name':'Abbie','score':99},{'name':'Ivy','score':80}]
In [69]: sorted(data,key=lambda x:x['score'])
Out[69]: [{'name': 'Ivy', 'score': 80}, {'name': 'Abbie', 'score': 99}]
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何使用 Python 字符串方法10/11
- ♥ 如何使用python阻塞调度11/17
- ♥ 如何在python字典中获取对应的键08/27
- ♥ python中的队列实例化09/29
- ♥ Python实用xlwt单元格添加超链接09/08
- ♥ python运行文件位于哪个文件夹中?09/21
内容反馈