Skip to main content
 首页 » 编程设计

python之从python中的max函数获取有线结果

2025年05月04日22davidwang456

使用 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'