我正在使用Thavelick的摘要生成器进行一些编辑,但找不到修复此错误的方法:
TypeError: < lambda > () missing 1 required positional argument: 's2'
以下是我知道的导致错误的代码:
def reorder(input, output):
output.sort(key=lambda s1, s2: input.find(s1)-input.find(s2))
return output
Thavelick的摘要器链接:https://github.com/thavelick/summarize/blob/master/summarize.py
这段代码可能使用了
cmp
参数来表示sort
,现在已经没有了。不能只使用相同的lamdba
。key
函数只能接受一个参数。你知道吗有一种方法可以盲目地转换代码:使用^{} 。不过,我认为在这种情况下,提供适当的键功能更容易:
也可以简单地写为:
表达式
a - b
在a < b
时返回负值,在a == b
时返回0
,在a > b
时返回正值。这意味着您的代码将根据它包含的元素在input
中的位置对output
进行排序。你知道吗所以
key
函数只是查找子串在input
中的位置。你知道吗要使用
cmp_to_key
,您可以这样做:从文档:https://docs.python.org/3/howto/sorting.html#key-functions
两者列表.排序()和sorted()有一个键参数,用于指定在进行比较之前对每个列表元素调用的函数。
因此
相关问题 更多 >
编程相关推荐