Python 我似乎不明白的语法

Python syntax that I don't seem to understand

所以我正在查看这段 python 代码来查找两个字符串的最长子序列,但我不明白“#line A”为什么第三个参数是 key=len。据我了解,len 是一个 returns 字符串长度的函数,但我不明白它在这里是如何使用的。

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

max 函数默认按自然值顺序计算。

但是你可以传递一个函数作为备用 "key" 来设置你自己的标准(同样适用于 sort)。

此处最大的 2 个传递值是根据字符串长度完成的,而不是默认的字符串字母数字顺序:max returns 两个中最长的字符串。