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
相关产品推荐
相关产品推荐

