如何正确遍历嵌套数值列表完成计算并解决TypeError报错
遍历嵌套列表计算差值的实现方案
1 修正索引遍历逻辑
如果需要保留按索引访问的写法,调整循环逻辑即可,原有冗余的索引初始化、自增语句都可以删除:
change = [] for i in range(len(data)): x = data[i][2] - data[i][3] change.append(x)
2 直接遍历子列表(可读性更高)
不需要额外处理索引,直接迭代取出每个子列表进行计算,从根源上避免索引误用的问题:
change = [] for sub_list in data: x = sub_list[2] - sub_list[3] change.append(x)
3 列表推导式(最优方案)
Python中这类「遍历+结果收集」的简单场景,使用列表推导式是性能和简洁度最优的实现,一行即可完成需求:
change = [sub_list[2] - sub_list[3] for sub_list in data]
如果存在部分子列表长度不足4个元素的情况,可以添加判断避免索引越界报错:
change = [sub_list[2] - sub_list[3] for sub_list in data if len(sub_list) >= 4]
内容的提问来源于stack exchange,提问作者Maria Pinzon
相关产品推荐
相关产品推荐

