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)
实际上,你的问题很简单:你忘了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.