如何将lambda函数转换为max()函数的键参数?

时间:2018-03-28 17:26:54

标签: python python-3.x lambda key max

我正在尝试将普通函数中的lambda函数转换为使用它作为键,但我无法理解它。

def most_appear(name_list):
     return max(name_list, key=lambda x: name_list.count(x))

这个lambda如何工作? 我如何创建一个用作键的函数?

3 个答案:

答案 0 :(得分:1)

它的语法稍微方便一点:

def func(x):
    return name_list.count(x)

然后

... max(..., key=func)

答案 1 :(得分:0)

此函数计算每个元素的数量,并返回包含大多数元素的元素。 lambda不是必需的,因为name_list.count已经是一个函数:

def most_appear(name_list):
     return max(name_list, key=name_list.count)

答案 2 :(得分:0)

在这种情况下,如果你有两个函数参数,你可以使用部分函数

from functools import partial
def replace_lambda(lst, item):
    return lst.count(item)

def most_appear(name_list):
     func = partial(replace_lambda, name_list)
     return max(name_list,key=func )