Python Lambda错误:'&燃气轮机';不支持-但未使用'&燃气轮机';-将函数转换为lambda

Python Lambda错误:'&燃气轮机';不支持-但未使用'&燃气轮机';-将函数转换为lambda,python,python-3.x,lambda,Python,Python 3.x,Lambda,我正在尝试将我编写的初始代码转换为lambda函数。我对使用lambda还不熟悉,所以我希望大家能理解为什么这不起作用 我知道我的方法可能不是最有效的解决方法。我仍然是一个新手编码和学习:) 如果您能帮助我将此代码转换为lambda,我将不胜感激。我不需要一个“更好”的解决方案,因为这个问题来自codewars.com,它为用户提供了多种更优雅的解决方案 我的初始代码: def high(x): letters = " abcdefghijklmnopqrstuvwxyz&qu

我正在尝试将我编写的初始代码转换为lambda函数。我对使用lambda还不熟悉,所以我希望大家能理解为什么这不起作用

我知道我的方法可能不是最有效的解决方法。我仍然是一个新手编码和学习:)

如果您能帮助我将此代码转换为lambda,我将不胜感激。我不需要一个“更好”的解决方案,因为这个问题来自codewars.com,它为用户提供了多种更优雅的解决方案

我的初始代码:

def high(x):
    letters = " abcdefghijklmnopqrstuvwxyz"
    res = [sum([letters.index(l) for l in y]) for y in x.split()]

    return x.split()[res.index(max(res))]

high('man i need a taxi up to ubud')
我在lambda的尝试:

def high(x):
    letters = " abcdefghijklmnopqrstuvwxyz"
    res = max(x.split(), lambda k: sum(letters.index(z) for z in k))
    return res
其中:

TypeError: '>' not supported between instances of 'function' and 'list'
作为参考,这里是我尝试在不使用ord()的情况下模拟的最受欢迎的解决方案

这让我感到困惑,因为我没有使用'>'


谢谢

要给lambda函数一些数据,需要将其映射到数据集,在本例中为x.split()`

def high(x):
    letters = " abcdefghijklmnopqrstuvwxyz"
    res = list(map(lambda k: sum(letters.index(z) for z in k),x.split()))
    return x.split()[res.index(max(res))]

不知道我怎么没注意到。我忘了加上“key=”。我的功能现在起作用了

def high(x):
    letters = " abcdefghijklmnopqrstuvwxyz"
    return max(x.split(), key=lambda k: sum(letters.index(z) for z in k))

high('man i need a taxi up to ubud')

您没有使用
,但是
max()
在内部使用。我的代码和“正确”的代码之间有什么区别?两者都使用max(),在“right”代码中,lambda函数为变量指定返回值。在代码中,您试图将一个值与lambda函数的引用进行比较。好了,开始有意义了。非常感谢。还有办法在lambda中得到索引的总和吗?正确,我建议关闭这个问题,而不是发布答案,因为它基本上是一个打字错误
def high(x):
    letters = " abcdefghijklmnopqrstuvwxyz"
    return max(x.split(), key=lambda k: sum(letters.index(z) for z in k))

high('man i need a taxi up to ubud')