You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将循环结果存入序列变量?解决不可迭代报错

问题解决:将姓名长度存入列表并找出最长姓名

你代码里的问题很明确:每次循环都把L直接赋值为单个整数len(x),原本初始化的空列表被覆盖成了整数,而max()函数需要传入可迭代的序列(比如列表),所以会提示“不可迭代”的错误。

修正方法一:正确将长度存入列表L

用列表的append()方法,把每个姓名的长度添加到列表末尾,这样L始终是一个可迭代的列表:

names = ["David","Olivia","Charlotte"] 
L = []
for x in names:
    L.append(len(x))  # 将每个姓名长度追加到列表L中
print(max(L))  # 输出9,对应最长姓名Charlotte的长度

更简洁的写法:直接找到最长姓名

如果你的最终目的是找到最长的姓名,不需要单独存储长度列表,可以直接用max()的key参数指定比较规则,一步到位:

names = ["David","Olivia","Charlotte"] 
longest_name = max(names, key=lambda name: len(name))
print(longest_name)  # 直接输出Charlotte

内容的提问来源于stack exchange,提问作者SobekMhiDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:35:30