如何遍历字典所有值直至末尾 计算列表相邻元素和的累计总值
解决方案
直接遍历字典的所有列表值,对每个列表逐位计算相邻元素的和,最后统一累加即可,参考代码如下:
d = {'Item 1': [3,4,5,3], 'Item 2': [2,3,4], 'Item 3': [5,34,75,35,65]} total = 0 # 遍历字典中所有存储的列表 for lst in d.values(): # 取相邻两个元素求和累加,自动跳过长度不足2的列表 for i in range(len(lst) - 1): total += lst[i] + lst[i+1] print(total) # 运行输出结果为394
如果需要更精简的写法,也可以用生成器表达式配合内置sum函数实现:
total = sum(lst[i] + lst[i+1] for lst in d.values() for i in range(len(lst)-1))
计算过程验证
按照需求规则逐段计算的结果如下:
- Item 1对应列表相邻和:3+4=7、4+5=9、5+3=8,单列表累计24
- Item 2对应列表相邻和:2+3=5、3+4=7,单列表累计12
- Item 3对应列表相邻和:5+34=39、34+75=109、75+35=110、35+65=100,单列表累计358
- 最终总计值:24 + 12 + 358 = 394
说明:如果字典里存在长度小于2的列表,上述代码会自动跳过该列表的计算逻辑,不会触发索引报错。
内容的提问来源于stack exchange,提问作者Jack Jones
相关产品推荐
相关产品推荐

