使用Python3.6.2,我试图在句子中找到最长的单词。 我想出的代码是,
>>> sen = "Argument goes here"
>>> max(sen.split())
'here'
我想问为什么答案' 在这里' 而不是' Argument' ,而不是答案问题
提前感谢您的时间 - 如果我错过了任何内容,请在评论中过度强调或强调一个特定的要点。
答案 0 :(得分:3)
正如 SungJin Steve Yoo 所指出的那样,默认情况下max
函数会比较string
中的Lexological Order
,此处字符串长度不起作用。
所以,当你这样做时
max( ['Argument', 'goes', 'here'] )
此处,与h
和A
相比,起始字母g
的排名更高。
如果您想通过length
和lexological 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