如何用for循环计算嵌套列表索引1、2元素总和并追加至子列表?
解决嵌套列表销售额计算的报错问题
需求说明
给定嵌套列表sales,每个子列表的结构为:
- 索引0:城市名称
- 索引1:上半年销售额
- 索引2:下半年销售额
需要计算每个城市的全年总销售额,并将结果添加到对应子列表的末尾。
错误代码与报错信息
用户尝试的代码
for i in sales: i = sum(sales[1],[2]) print(sales)
翻译后的报错信息
Traceback (most recent call last):
File "main.py", line 9, in
i = sum(sales[1],[2])
TypeError: 只能将列表与列表拼接,不能将字符串与列表拼接
错误原因分析
sum函数使用错误:sum()的第一个参数应是可迭代的数值序列,第二个参数是求和的初始值。你传入的sales[1]是包含字符串的列表(['Los Angeles', 85899, 91021]),无法直接求和;同时[2]作为初始值,会触发字符串与列表拼接的类型错误。- 未修改原列表:循环中给
i赋值不会改变原列表的内容,需要用列表方法直接操作子列表。
正确代码实现
sales = [ ['New York', 105820, 112180], ['Los Angeles', 85899, 91021], ['Tampa', 35010, 32001], ['Washington', 37011, 39595] ] # 遍历每个城市的销售数据 for city_data in sales: # 计算全年总销售额:上半年+下半年 annual_total = city_data[1] + city_data[2] # 将结果添加到子列表末尾 city_data.append(annual_total) print(sales)
代码逻辑说明
- 遍历
sales中的每个子列表city_data,直接操作原列表元素 - 提取子列表中索引1和2的数值相加,得到全年销售额
- 使用
append()方法将计算结果追加到子列表末尾,完成原列表的修改
内容的提问来源于stack exchange,提问作者TeguhAnggar
相关产品推荐
相关产品推荐

