Python遍历字典时如何获取列表首元素的往期累加和
正确实现方案
注意:Python 3.7及以上版本默认字典保留插入顺序,若使用更低版本,需引入collections.OrderedDict定义字典,保证遍历顺序符合预期。
D = {1:[90,3,'a'], 2:[270,2,'b'], 3:[30,2,'c']} # 存储当前轮次之前所有value[0]的前缀和 prefix_sum = 0 for d in D.values(): # 前缀和即为当前轮需要的xstart xstart = prefix_sum # 此处可添加使用xstart的业务逻辑,示例打印验证结果 print(f"遍历元素{d},xstart = {xstart}") # 累加当前value[0]到前缀和,供下一轮迭代使用 prefix_sum += d[0]
运行以上代码输出结果和你要求的完全一致:
遍历元素[90, 3, 'a'],xstart = 0 遍历元素[270, 2, 'b'],xstart = 90 遍历元素[30, 2, 'c'],xstart = 360
原代码问题说明
你原来的代码只处理了第一轮的特殊逻辑,没有区分「先使用前序累计值作为xstart」和「再累加当前值到累计变量」的执行顺序,两个变量的累加逻辑混乱,导致后续轮次得到的xstart不符合预期。
内容的提问来源于stack exchange,提问作者Cel
相关产品推荐
相关产品推荐

