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

从CSV提取AFG国家人口数据后无法计算平均值的问题求助

解决AFG人口平均值计算问题

你的代码有几个关键问题导致无法计算平均值,直接给你修正后的方案:

问题分析

  • 每次循环只创建单元素列表a=[population],没有累积所有符合条件的人口数据
  • Python普通列表没有mean()方法,得用sum()除以len()计算平均值
  • 人口数据是字符串类型,必须转成整数才能参与数值运算
  • 平均值应该在收集完所有数据后计算,不是每循环一次就算一次

修正后的代码

import csv  # 别忘了导入csv模块,原代码漏了这行

# 初始化空列表存储所有AFG的人口数据
afg_populations = []

with open('ciudades.csv', 'r') as city:  # 用with语句自动关闭文件更安全
    lineas = csv.reader(city)
    next(lineas)  # 如果csv第一行是表头,就跳过;没有表头就删掉这行
    
    for row in lineas:
        # 按列索引取值更稳妥,避免变量名冲突(原代码里的a是循环变量,又用来存列表,会混乱)
        _, name, countrycode, district, population = row
        if countrycode == 'AFG':
            # 转成整数后添加到列表
            afg_populations.append(int(population))

# 计算并打印平均值
if afg_populations:  # 先判断列表不为空,避免除以0报错
    average = sum(afg_populations) / len(afg_populations)
    print(f"AFG城市人口平均值: {average:.2f}")
else:
    print("没有找到AFG的人口数据")

代码说明

  1. 用with语句打开文件,不用手动关闭,更安全
  2. next(lineas)用来跳过表头行(如果你的csv文件第一行是列名的话),如果没有表头可以删除这行
  3. 用afg_populations列表累积所有符合条件的人口整数
  4. 循环结束后统一计算平均值,用sum()求和,len()取数量,相除得到平均值
  5. 加了空列表判断,避免没有数据时出现除以0的错误

运行这段代码后,就能得到你要的AFG城市人口平均值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:19:55