Python实现嵌套列表排除首行后按同索引求和(无模块导入)
嵌套列表同索引求和实现方案
前置必要处理
- 所有数值元素都是字符串格式,必须先转成
int整数类型才能求和,直接相加会变成字符串拼接(比如"100"+"50"会得到"10050"而非150)。 - 循环逻辑完全匹配需求:外层遍历要计算的列索引(从1开始依次递增),内层遍历所有数据行(跳过表头)累加,顺序和要求的“先算索引1、再算索引2”完全一致。
小提示:你示例里用圆括号定义的
carbon_dioxide实际是元组类型,因为只需要遍历读取元素、不需要修改结构,所以不影响运行;如果后续需要修改列表内容,可以把圆括号换成方括号[]改成列表类型。
完整可运行代码
carbon_dioxide = ([" ", "1990", "1991", "1992"], ["factories", "100", "101", "102"], ["food industry", "50", "51", "52"], ["transports", "25", "26", "27"]) # 取出表头行,确定要计算的列范围 header = carbon_dioxide[0] # 外层循环:依次遍历每一个要计算的列索引(从1开始,跳过0列的类别名) for col_idx in range(1, len(header)): # 初始化当前列的累加和为0 col_sum = 0 # 内层循环:遍历所有数据行(跳过表头行) for row_idx in range(1, len(carbon_dioxide)): # 取出当前位置的数值,转成整数后加到累加和里 col_sum += int(carbon_dioxide[row_idx][col_idx]) # 打印当前列的求和结果,附带对应年份更直观 print(f"表头{header[col_idx]}对应求和结果:{col_sum}")
运行输出结果
表头1990对应求和结果:175 表头1991对应求和结果:178 表头1992对应求和结果:181
逻辑说明
- 你之前的代码仅实现了遍历所有数据行(跳过表头),缺少按列遍历+累加的核心逻辑,因此无法得到求和结果。
- 外层循环的
col_idx就是需求中提到的“索引1、索引2、索引3”位置,循环顺序完全符合计算要求。 - 全程未导入任何模块,仅使用基础语法(变量定义、for循环、range函数、int类型转换、字符串格式化)即可实现,完全适配入门阶段的知识范围。
内容的提问来源于stack exchange,提问作者M_F
相关产品推荐
相关产品推荐

