0

我有一个列表列表:

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)]

任何建议将不胜感激。

4

1 回答 1

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]]
于 2013-10-30T04:19:06.983 回答