打印列表中最长字符串的长度

时间:2018-05-20 10:54:37

标签: python python-3.x list range

我在打印列表中最长字符串的长度时遇到困难,kevin07应该等于7。

我当前的解决方案打印所有3个项目长度。

names = ['ron', 'james', 'kevin07']

best = 0

for index in range(len(names)):
    if len(names[index]) > best:
        best = len(names[index])
        print(best)

5 个答案:

答案 0 :(得分:3)

您尝试按长度查找最大值:

item = max(names, key=len)
print(len(item))

你也可以更直接一点:

print(max(len(x) for x in names))

...虽然如果你决定这样做,你还不知道该项是什么。

答案 1 :(得分:2)

print(max(map(len, names)))

使用地图功能。

答案 2 :(得分:1)

names = ['ron', 'james', 'kevin07']

best = 0

for index in range(len(names)):
    if len(names[index]) > best:
        best = len(names[index])

print(best)

输出:

7

说明:

您需要在循环外移动打印(最佳)

答案 3 :(得分:0)

例如:

names = ['ron', 'james', 'kevin07']
best = max([len(i) for i in names])
print(best)

答案 4 :(得分:0)

请考虑这种解决问题的方法:

names = ['ron', 'james', 'kevin07']

best = 0

for name in names:
    if len(name) > best:
        best = len(name)

print(best)

您的代码的主要问题是您在循环的每个步骤中都打印了best

我改变的另一件事是正确使用基于范围的循环。实际上不需要通过索引访问列表中的元素。