所以我正在看这个python代码找到两个字符串的最长子序列,但我不明白“#line A”为什么第三个参数是key = len。从我学到的东西len是一个返回字符串长度的函数,但我不明白它是如何在这里使用的。
def lcs(xstr, ystr):
"""
>>> lcs('thisisatest', 'testing123testing')
'tsitest'
"""
if not xstr or not ystr:
return ""
x, xs, y, ys = xstr[0], xstr[1:], ystr[0], ystr[1:]
if x == y:
return x + lcs(xs, ys)
else:
return max(lcs(xstr, ys), lcs(xs, ystr), key=len) #line A
答案 0 :(得分:0)
默认情况下,max
函数是根据自然值排序计算的。
但是您可以将一个函数作为备用“键”来设置自己的标准(同样适用于sort
)。
这里最多2个传递的值是根据字符串长度完成的,而不是字符串字母数字排序,这是默认值:max
返回两个字符串中最长的字符串。