在python中我有一个元素列表,我想根据它的lambda值得到最小的元素。像这样的东西
def g(list, f):
min = list[0]
for i in list:
if f(i) < f(max):
min = i
return min
如何使用lambda函数在1行中完成?
由于
答案 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