返回列表中最长单词的len

Rom*_*ker 1 python list maxlength python-2.7

嗨,我正在尝试创建一个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)
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 8

实际上,你的问题很简单:你忘了main在脚本的末尾调用函数:

main()
Run Code Online (Sandbox Code Playgroud)

当你这样做时,它8就像它应该的那样打印.


但是,如果您使用max及其关键功能,则可以更轻松地完成此任务:

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

编辑:

虽然我的上述解决方案工作正常,但我想提供一个我想到的更短的解决方案:

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

该解决方案使用的不是关键功能map.