我正在尝试在Python中找到最长的单词,但结果却是错误的。下面的代码是在交互模式下完成的。我应该以最长的单词/字符串接收到“商品”(10个字符),但是却收到了“欢迎”(7个字符)。
str = 'welcome to the merchandise store' #string of words
longest = [] #empty list
longest = str.split() #put strings into list
max(longest) #find the longest string
'welcome' #Should've been 'merchandise?'
最佳答案
它按字母顺序而不是长度对字符串进行排序,您需要的是:
max(longest, key=len)
让我进一步澄清一下。在Python中,字符串的默认比较是按字母顺序进行的。这意味着“ aa”在所有意图和目的上都将小于“ abc”(python2中的cmp和python2 / 3中的cmp的函数。我不建议使用此方法,因为它最终将成为
cmp=lambda x,y: len(x)-len(y)
之类的东西,与key=len
相比,其可读性要差得多,并且python3不支持该方法。如果您对使用密钥还有其他疑问,建议阅读this特别注意(7),该内容涵盖了list.sort的cmp和密钥,它们以相同的方式使用它们。
关于python - 查找最长的单词错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31173902/