Этот код, вероятно, использует аргумент cmp
для sort
, который сейчас отсутствует.Вы не можете просто использовать тот же lamdba
.Функция key
должна принимать только один аргумент.
Существует способ слепого преобразования кода: используйте functools.cmp_to_key
.Однако я полагаю, что в этом случае проще обеспечить правильную ключевую функцию:
output.sort(key=lambda s: input.find(s))
, которая также может быть записана так:
output.sort(key=input.find)
Выражение a - b
возвращает отрицательное значениезначение, если a < b
, 0
, если a == b
, и положительное значение, если a > b
.Таким образом, это означает, что ваш код сортирует output
в соответствии с тем, где содержащиеся в нем элементы находятся в input
.
Так что функция key
предназначена только для поиска, где подстрока находится в input
.
Чтобы использовать cmp_to_key
, вы должны сделать это вместо:
from functools import cmp_to_key
output.sort(key=cmp_to_key(lambda s1, s2: input.find(s1) - input.find(s2)))