Python列表首元素为字符串如何移除 正确计算数值中位数
错误根因
- 你当前代码中
alter = line.split()[0]每次循环都会将alter赋值为当前行的单个字符串对象,并非存储所有数据的列表,字符串类型没有pop方法,因此触发属性报错。 - 你没有将所有数值行的数据收集到同一个列表中,也没有跳过第一行的表头、将数值字符串转换为数字类型,无法直接计算中位数。
- 最终打印的
Alter和你定义的alter大小写不一致,属于变量名拼写错误,即使前面逻辑正确也会触发未定义报错。
修复后可运行代码
import statistics # 初始化空列表存储所有年龄数值 alter_list = [] with open('/Users/solidaneziri/Downloads/Data_Exercise_1.txt') as infile: # 跳过第一行表头 next(infile) for line in infile: # 去除行首尾空白,跳过空行 line_content = line.strip() if not line_content: continue # 转换为整数后加入列表 alter_list.append(int(line_content)) # 计算并打印中位数 median_alter = statistics.median(alter_list) print(median_alter)
运行结果
执行上述代码后会直接输出你预期的22.5。
内容的提问来源于stack exchange,提问作者nsol
相关产品推荐
相关产品推荐

