2024-05-19 05:53:07 发布
网友
我无法在正常函数中转换它。在
def closest(u): return min(updated_unique_list, key=lambda v: len(set(u) ^ set(v)))
labda和min是怎么工作的? 我试图从文档中理解,但是我想通过这个例子来理解,并创建一个普通函数,而不是这个lambda函数。在
^{}查找iterable相对于函数的最小值。^Python中的{}可以大致视为(忽略一些细节,如尽可能少地调用{}或者只遍历列表一次)
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))是最小值。在
updated_unique_list
v
len(set(u) ^ set(v))
现在,两个集合之间的^就是它们的symmetric difference。set(u) ^ set(v)返回一组不同时出现在u和v中的元素集。如果u和v相等,则结果的大小为零;如果它们根本不重叠,则结果的大小为最大值。在
^
set(u) ^ set(v)
u
因此,该函数尝试在updated_unique_list中查找一个对象,该对象具有与u最常见的元素。在
如果您想要“normal function”,只需根据我前面描述的算法展开min。在
min
^{} 查找iterable相对于函数的最小值。^Python中的{}可以大致视为(忽略一些细节,如尽可能少地调用{}或者只遍历列表一次)
在您的例子中,它在
updated_unique_list
中找到v
,这样len(set(u) ^ set(v))
是最小值。在现在,两个集合之间的
^
就是它们的symmetric difference。set(u) ^ set(v)
返回一组不同时出现在u
和v
中的元素集。如果u
和v
相等,则结果的大小为零;如果它们根本不重叠,则结果的大小为最大值。在因此,该函数尝试在
updated_unique_list
中查找一个对象,该对象具有与u
最常见的元素。在如果您想要“normal function”,只需根据我前面描述的算法展开
min
。在相关问题 更多 >
编程相关推荐