gpt4 book ai didi

python - lambda 到 python 中的函数转换

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:37 26 4
gpt4 key购买 nike

我正在尝试将 labda 函数转换为正常函数,但无法理解它。

def closest(u): 
return min(updated_unique_list, key=lambda v: len(set(u) ^ set(v)))

这个 labda 和 min 是如何工作的?
我试图从文档中理解,但我想通过这个例子来理解并创建一个普通函数而不是这个 lambda 函数。

最佳答案

min找到关于函数的可迭代对象的最小值。 Python 中的 min(lst, key=func) 可以粗略地认为是 (忽略细节,如尽可能少地调用 f 或遍历列表只有一次)

retval = lst[0]
for item in lst:
if func(item) < func(retval):
retval = item
return retval

在你的例子中,它在 updated_unique_list 中找到项目 v 使得 len(set(u) ^ set(v)) 是最小值。

现在,两组之间的 ^ 是他们的 symmetric difference . set(u) ^ set(v) 返回一组未同时出现在 uv 中的元素。如果 uv 相等,结果的大小将为零,如果它们根本不重叠,则结果的大小为最大值。

因此,该函数会尝试在 updated_unique_list 中查找与 u 具有最常见元素的对象。

如果您想要“正常功能”,只需根据我上面描述的算法扩展 min

关于python - lambda 到 python 中的函数转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com