以下lambda函数如何代替Python的sort函数中的'itemgetter'?

时间:2015-08-01 16:39:47

标签: python sorting lambda

我有这个代码,它按照第二个项目对我的列表进行排序 - 但lambda函数实际上做了什么?

 sorted_list.sort(key=lambda x: x[1],reverse=True)

我得到了它们的基本属性;它们是匿名的,一次性的功能 - 但我不知道这里发生了什么。是将x作为参数并返回x[1]

2 个答案:

答案 0 :(得分:4)

"是否将load作为参数并返回$( '.img img' ).load(function() { $("#scroller").simplyScroll({ auto: false, speed: 10 }); }); ?" 这正是它所做的事情,是的。

写为lambda函数的常规函数​​:

x

因此该功能相当于x[1]

由于key函数的目的是返回排序键,因此生成的键(序列def sortkey(x): return x[1] 中的第二个元素)就是列表的排序依据。

答案 1 :(得分:3)

这就是它的作用。在shell中进行实验永远不会受到伤害。 Lambda表达式是表达式。它们可以分配给变量并以这种方式进行测试:

>>> f = lambda x:x[1]
>>> f([4,6,2])
6

您也可以直接使用它:

>>> (lambda x:x[1])([4,6,2])
6