Python中如何对元组列表内每个元组的前两个值求和
问题根因
你编写的代码始终访问元组列表的第一个元素tupl[0]做计算,没有用到每次循环迭代到的当前元组,所以会得到重复的计算结果。同时不要用tuple作为循环变量名,这是Python内置类型名称,用作变量会覆盖原有功能,属于不好的编码习惯。
正确实现
要计算每个元组前两项的和,直接在列表推导式中对每次迭代的当前元组取前两位相加即可,有两种常用写法:
- 直接索引相加
tupl = [(5,3,33), (2,5,2), (4,1,7)] sum_tupl = [t[0] + t[1] for t in tupl] print(sum_tupl)
运行输出:
[8, 7, 5]
- 切片求和(适合前n项求和的场景,扩展性更好)
tupl = [(5,3,33), (2,5,2), (4,1,7)] sum_tupl = [sum(t[:2]) for t in tupl] print(sum_tupl)
运行结果和上述写法完全一致。
内容的提问来源于stack exchange,提问作者kosky
相关产品推荐
相关产品推荐

