Skip to main content
 首页 » 编程设计

python之遍历 Python 中的字符串列表

2025年05月04日19unruledboy

我正在努力思考为什么顶部代码有效而底部代码无效。它们都是 for 循环,只是写法不同,似乎做同样的事情,但第二个循环失败并显示“int object is not iterable”。也许我在这里遗漏了一些明显的东西

这行得通

def longestWord(words): 
    return max(len(s) for s in words) 
 
 
x = longestWord(['these', 'are', 'some', 'strings']) 
 
print(x) 

这行不通

def longestWord(words): 
    for s in words: 
        return max(len(s)) 
 
x = longestWord(['these', 'are', 'some', 'strings']) 
 
print(x) 
 
TypeError: 'int' object is not iterable 

请您参考如下方法:

def longestWord(words): 
    for s in words: 
        return max(len(s)) 

首先,一旦您找到单词列表中的第一个单词,您就返回了。

其次,len() 为您提供一个整数,表示您调用它的对象的长度。所以,执行 max(len(whatever)) 你会得到一个数字的最大值,这就是你得到错误的原因。

这在您的第一个示例中起作用的原因:

max(len(s) for s in words)

是因为 len(s) for s in words 给了你一个可迭代对象,你可以从中获取最大元素。