如何在python中使用lambda获取列表中的最小元素?

时间:2015-01-14 23:01:14

标签: python lambda

在python中我有一个元素列表,我想根据它的lambda值得到最小的元素。像这样的东西

def g(list, f):
    min = list[0]
    for i in list:
        if f(i) < f(max):
             min = i
    return min

如何使用lambda函数在1行中完成?

由于

3 个答案:

答案 0 :(得分:5)

使用reduce:

reduce(lambda x, y: min(x, y, key=f), lst)

但您也可以直接使用min

min(lst, key=f)

因为min可用于比较2个元素或可迭代的元素

答案 1 :(得分:1)

你可以说

min(l, key=f)

l是您的列表,f是比较器函数

此外,请勿为变量list命名,不要将变量命名为min等。

答案 2 :(得分:1)

min=list(filter(lambda x: (x >= i), list))[0]

我们正在遍历列表并确保我们只获取该条件将返回 true 的元素, 因为过滤器只能在数组上工作,这将返回一个包含一个元素的列表,因此我们将其保存为 pace0

处的元素