我看到它用于排序,但这行代码的单个组件实际上意味着什么?这是什么意思:key = lambda x:x [1]?
key=lambda x: x[1]
什么lambda
,什么是x:
,为什么[1]
在x[1]
等等
例子
max(gs_clf.grid_scores_, key=lambda x: x[1])
sort(mylist, key=lambda x: x[1])
我看到它用于排序,但这行代码的单个组件实际上意味着什么?这是什么意思:key = lambda x:x [1]?
key=lambda x: x[1]
什么lambda
,什么是x:
,为什么[1]
在x[1]
等等
例子
max(gs_clf.grid_scores_, key=lambda x: x[1])
sort(mylist, key=lambda x: x[1])
lambda
有效地创建一个内联函数。例如,你可以重写这个例子:
max(gs_clf.grid_scores_, key=lambda x: x[1])
使用命名函数:
def element_1(x):
return x[1]
max(gs_clf.grid_scores_, key=element_1)
在这种情况下,max()
将其数组,其第二元件(x[1]
)在返回元件比所有大其他要素的第二要素。措辞的另一种方法是函数调用暗示:返回最大元素,使用x[1]
作为密钥。
lambda
表示anonymous function。在这种情况下,该函数采用单个参数x
并返回x[1]
(即x
中索引1处的项目)。
现在,sort(mylist, key=lambda x: x[1])
根据应用于列表中的每个元素的key
的值对mylist
进行排序。同样,max(gs_clf.grid_scores_, key=lambda x: x[1])
返回的最大值为gs_clf.grid_scores_
,相对于每个元素的返回值key
。
我还应该指出,这个特定的功能已经包含在其中一个库中:operator
。具体而言,operator.itemgetter(1)
相当于您的key
。
distances.sort(key=lambda x: x[1])
这是函数。 这里x是列表,我们在其中添加x[1]
,即列表的第二个元素到排序函数。因此,基本上我们将每个列表的第二个元素(即x [1])添加到排序函数中。 我希望你明白这一点。
Ehi!这是我对1小时前问的另一个问题的回答! :d – fog 2013-04-30 22:40:24