读取文本文件得到的列表传入自定义函数报类型错误如何解决?
问题原因
readlines()读取文件返回的每个元素是带换行符的字符串类型,无法直接参与数值运算- 自定义函数
f(x)仅支持单个数值入参,不能直接传入整个列表批量计算 - 原代码未导入
math模块,调用math.log10会额外报错
修正后的完整代码
import math # 读取文件并直接转换为浮点数列表,with语句会自动关闭文件无需手动调用close with open('example.txt', 'r') as text_file: ex_list = [float(line.strip()) for line in text_file.readlines()] # 定义自定义函数 def f(x): return (x - (5*math.log10(132))) # 批量处理列表得到结果 result_list = [f(num) for num in ex_list] # 输出结果查看 print(result_list)
关键修改说明
- 新增
import math导入依赖模块 - 读取每行后调用
strip()清除首尾空白(包括换行符),再用float()转成浮点数类型 - 通过列表推导式遍历数值列表,逐个调用自定义函数得到结果列表
内容的提问来源于stack exchange,提问作者user16857156
相关产品推荐
相关产品推荐

