我有一份清单清单:
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)]
任何建议都会令人感激。
答案 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]]