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

时间:2017-10-21 07:37:08

标签: python python-3.x

使用Python3.6.2,我试图在句子中找到最长的单词。 我想出的代码是,

 >>> sen = "Argument goes here"

 >>> max(sen.split())

 'here'

我想问为什么答案' 在这里' 而不是' Argument' ,而不是答案问题

提前感谢您的时间 - 如果我错过了任何内容,请在评论中过度强调或强调一个特定的要点。

2 个答案:

答案 0 :(得分:3)

正如 SungJin Steve Yoo 所指出的那样,默认情况下max函数会比较string中的Lexological Order,此处字符串长度不起作用。

所以,当你这样做时

max( ['Argument', 'goes', 'here'] )

此处,与hA相比,起始字母g的排名更高。

如果您想通过lengthlexological order执行此操作,请使用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'

答案 1 :(得分:2)

当你没有提到key的{​​{1}}函数时,它只会采用迭代的默认排序;在这种情况下,词汇顺序。您需要提到您需要按max订购。你需要这样做:

len