返回列表中最长单词的

返回列表中最长单词的

This question already has answers here:
Length of longest word in a list
                                
                                    (6个答案)
                                
                        
                                5年前关闭。
            
                    
嗨,我正在尝试制作一个python程序,该程序将返回列表中最长单词的长度,但对我来说效果不佳。

这是代码:

def find_longest_word():
   list1 = ['a','aa','aaa','aaaa','aaaaa','aaaaaa','aaaaaaa','aaaaaaaa',]
   max1 = ''
   for x in range (0, len(list1)):
      if (len(max1) < len(list1[x]) ):
          max1 = list1[x]
   return max1


def main():
    m = find_longest_word()
    print len(m)

最佳答案

实际上,您的问题非常简单:您忘记在脚本结尾处调用main函数:

main()


当您执行此操作时,它会像应打印的那样打印8



但是,如果使用max及其key function,则可以轻松完成此任务:

>>> list1 = ['a','aa','aaa','aaaa','aaaaa','aaaaaa','aaaaaaa','aaaaaaaa',]
>>> max(list1, key=len)
'aaaaaaaa'
>>> len(max(list1, key=len))
8
>>>




编辑:

尽管上述解决方案可以正常工作,但我想提供一个更短的解决方案:

>>> list1 = ['a','aa','aaa','aaaa','aaaaa','aaaaaa','aaaaaaa','aaaaaaaa',]
>>> max(map(len, list1))
8
>>>


此解决方案使用map代替键功能。

10-06 00:26