使用Python3.6.2,我試圖找到句子中最長的單詞。 我想出的代碼,從python中的max函數獲得連線結果
>>> sen = "Argument goes here"
>>> max(sen.split())
'here'
我想,爲什麼是答案「這裏」,而不是「參數」,而不是解決問題的辦法。
預先感謝您的時間 - 如果我錯過了任何東西,過分強調或不夠重視某個特定點,請在評論中告訴我。
使用Python3.6.2,我試圖找到句子中最長的單詞。 我想出的代碼,從python中的max函數獲得連線結果
>>> sen = "Argument goes here"
>>> max(sen.split())
'here'
我想,爲什麼是答案「這裏」,而不是「參數」,而不是解決問題的辦法。
預先感謝您的時間 - 如果我錯過了任何東西,過分強調或不夠重視某個特定點,請在評論中告訴我。
由於SUNGJIN史蒂夫柳指出,max
功能默認情況下,比較了Lexological Order
string
,在這裏,字符串長度不發揮作用。
所以,當你做
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'
太好了。很好的回答 –
@SungJinSteveYoo:謝謝:) –
當你沒有提及max
的key
功能時,它只會採用默認的迭代次序;在這種情況下,詞彙順序。您需要提到您需要訂購len
。你需要這樣做:
>>> sen = "Argument goes here"
>>> max(sen.split(), key=len)
'Argument'
max是比較你的字符串的詞法順序而不是字符串的長度 –
請你向我解釋什麼是詞法順序或給出任何鏈接來了解它@SungJin Steve Yoo –
請看這裏。 http://thepythonguru.com/python-strings/ –