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

嵌套列表按索引求和问题:我的Python列表推导式为何失效?

问题分析与解决

你的数据集是一个列表(变量名testdic容易误导,其实它不是字典),结构是每个元素为包含两个子元素的列表,第二个子元素是数值列表。

你的代码问题

  1. 嵌套循环逻辑错误:你写的嵌套列表推导式完全没必要。外层循环for i in testdic取出的是每个子列表(比如['HG00096', [15, 1, 0]]),内层循环for x in i会遍历这个子列表的两个元素——字符串'HG00096'和数值列表[15,1,0]。
  2. 索引错误触发点:当x是字符串时,x[1][0]会报错:x[1]取的是字符串的第二个字符(比如'HG00096'的x[1]是'G'),单个字符没有[0]索引,直接引发TypeError或IndexError。
  3. 冗余的sum嵌套:你试图在列表推导式里嵌套sum,这会导致对每个子列表的元素单独求和,完全偏离了你要计算所有目标值总和的需求。

正确写法

直接遍历每个子列表,提取目标数值后求和即可,两种写法都可行:

方法1:生成器表达式(更高效)

testdic = [['HG00096', [15, 1, 0]], ['HG00097', [33, 0, 0]], ['NA21127', [24, 1, 0]]]
total = sum(item[1][0] for item in testdic)
print(total)  # 输出72

方法2:列表推导式先收集再求和

total = sum([item[1][0] for item in testdic])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:06:21