如何分别在子列表中添加配对值?

时间:2013-10-30 04:16:26

标签: python-2.7

我有一份清单清单:

a = [[2,3,4,5],[1,3,2,7]]

我希望将每个子列表中的连续配对值分别汇总到输出:

[[5,9],[4,9]]

并使用以下但未按要求获取:

b = [sum(a[i:i+2]) for i in xrange(0,len(a),2)]

任何建议都会令人感激。

1 个答案:

答案 0 :(得分:1)

使用嵌套列表理解。

>>> a = [[2,3,4,5],[1,3,2,7]]
>>> [[sum(sublist[i:i+2]) for i in xrange(0,len(sublist),2)] for sublist in a]
[[5, 9], [4, 9]]

使用函数的等效,易于阅读的版本:

>>> def paired_sum(a):
...     return [sum(a[i:i+2]) for i in xrange(0,len(a),2)]
... 
>>> [paired_sum(sublist) for sublist in a]
[[5, 9], [4, 9]]
>>> map(paired_sum, a)
[[5, 9], [4, 9]]
相关问题