函数获取最长字符串的长度

时间:2014-08-15 07:52:39

标签: python string python-3.4

我想定义一个函数,它将获取变量中最长字符串的长度。 我在下面使用*字符串之前执行以下操作,以便它包含所有参数。

但是当我测试我的函数时,它只给出第一个字符串的长度(而不是给我最长的)。我做错了什么?

>>> def longlen(*strings):
    max=0
    for s in strings:
        if len(s)>max:
            max=len(s)
            return(max)
>>> longlen('kodak','polaroid','sony')
5

5 个答案:

答案 0 :(得分:3)

当然,在您使用的真实世界用例中:

max_len = max(map(len, strings))

答案 1 :(得分:0)

我认为你应该改变return语句的缩进。您的代码将始终返回第一个长度,它将永远不会为所有后续字符串进行迭代。

def longlen(*strings):
    max=0
    for s in strings:
        if len(s)>max:
            max=len(s)
    return(max)

答案 2 :(得分:0)

在完成for循环后返回最大值

def longlen(*strings):
    max=0
    for s in strings:
        if len(s)>max:
            max=len(s) 
    return(max)
print longlen('kodak','polaroid','sony')

输出:8

答案 3 :(得分:0)

这可能是一项编程任务,让您与函数和东西保持联系。但是你在这里不需要for循环,这可以用更快的列表理解来完成。如果您对该解决方案感兴趣,请点击此处:

def longlen(*strings):
    return max([len(s) for s in strings])

答案 4 :(得分:0)

您的缩进不正确。请参阅documentation on python indentation

   def longlen(*strings):
maximum=0
for s in strings:
    if len(s)>maximum:
        maximum=len(s)
return(maximum)