python题的答案代码看8懂

给定一串单词,您需要找到得分最高的单词。
单词的每个字母根据其在字母表中的位置得分:a = 1, b = 2, c = 3等等。
您需要将得分最高的单词作为字符串返回。
如果两个单词得分相同,则返回原始字符串中最早出现的单词。
所有字母均为小写,所有输入均有效。
high('man i need a taxi up to ubud'), 'taxi'

代码看不懂,请解释1下
1.max里面为什么要x.split(), key=lambda k: sum(ord(c) - 96 for c in k,是比这两个的大小吗
2.k代表的是什么

def high(x):
     return max(x.split(), key=lambda k: sum(ord(c) - 96 for c in k))
print(high('what time are we climbing up the volcano')) #'volcano'

我换一种方式来描述一下这个代码,将代码拆分了一下,max我感觉并不是纯粹比较大小,而是将x.split迭代的每个值k传入后面的匿名函数内,匿名函数计算每个单词字母c的ascii值-96,求和后用max判断最大的,并返回对应迭代列表的单词

def high(x):
    m=[]
    n=x.split()
    for k in n:
        l=sum(ord(c)-96 for c in k)
        m.append(l)
    return n[m.index(max(m))]
print(high('what time are we climbing up the volcano')) #'volcano'

分开传入匿名函数lambda啊,匿名函数最后返回一个迭代器,这个迭代器放入
max里面求最大值,
key是用来指定传输的参数计算最大值的方法,就相当于把每个数都放进去,最后计算出最大值返回
采纳哦

split翻译为分裂。 split()就是将一个字符串分裂成多个字符串组成的列表。
split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割。
//---当不带参数时
example:
st0= ' song huan gong '
print(st0.split())
结果为:
['song', 'huan', 'gong']