我在打印列表中最长字符串的长度时遇到困难,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)
答案 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
。
我改变的另一件事是正确使用基于范围的循环。实际上不需要通过索引访问列表中的元素。