使用 Python3.6.2,我试图找到句子中最长的单词。 我想出的代码是,
>>> sen = "Argument goes here"
>>> max(sen.split())
'here'
我想知道为什么答案是“here”而不是“Argument”,而不是问题的答案。
提前感谢您抽出宝贵时间——如果我遗漏了什么,过分强调或低估了某个特定点,请在评论中告诉我。
请您参考如下方法:
正如 SungJin Steve Yoo 指出的那样,max默认情况下,函数比较 Lexological Order 中的 string,在这里,字符串长度不起作用。
所以,当你这样做的时候
max( ['Argument', 'goes', 'here'] )
在这里,与 A 和 g 相比,起始字母 h 的阶数更高。
如果您想按长度 和词法顺序 执行此操作,请使用key 函数:
max(sen.split(), key= lambda x:(len(x), x) )
下面是一些可以让您掌握其中窍门的案例:
>>> sen = sen = 'hex men or -'
>>> max(sen.split())
=> 'or'
>>> max(sen.split(), key=len)
=> 'hex'
>>> max(sen.split(), key= lambda x: (len(x), x))
=> 'men'
