对比两个列表求最值时提示float不是可迭代对象如何修复
「float is not a iterable object」报错修复方案
报错核心原因
max()、min()这类聚合函数默认要求传入列表、元组这类可迭代对象,如果你错误地将单个浮点数值作为参数传入,就会触发该报错。
修复代码示例
首先定义两个目标列表(替换为你的实际数值即可):
Kelloggs = [22.6, 34.1, 29.8, 41.5, 37.2] general_mills = [19.7, 31.4, 43.2, 38.9, 25.6]
场景1:获取两个列表所有数值的全局最大、最小值
将两个列表拼接后传入聚合函数即可:
# 全局最大值 all_max = max(Kelloggs + general_mills) # 全局最小值 all_min = min(Kelloggs + general_mills)
场景2:对比两个列表的均值,取两个均值的最大、最小值
先计算两个列表的均值,再将两个均值传入聚合函数即可:
# 计算两个列表的均值 kelloggs_mean = sum(Kelloggs) / len(Kelloggs) gm_mean = sum(general_mills) / len(general_mills) # 两个均值中的最大值 max_mean = max(kelloggs_mean, gm_mean) # 两个均值中的最小值 min_mean = min(kelloggs_mean, gm_mean)
对应报错的常见错误写法
# 错误示例1:将单个浮点值直接传入max/min wrong_val = max(kelloggs_mean) # 错误示例2:传入单个独立元素而非完整可迭代对象 wrong_val = max(Kelloggs[1])
内容的提问来源于stack exchange,提问作者Juan David Serna
相关产品推荐
相关产品推荐

