使用
zip()和
sum():
In [1]: l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 0)]In [2]: [sum(x) for x in zip(*l)]Out[2]: [25, 20]
要么:
In [4]: map(sum, zip(*l))Out[4]: [25, 20]
timeit结果:
In [16]: l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 0)]*1000In [17]: %timeit [sum(x) for x in zip(*l)]1000 loops, best of 3: 1.46 ms per loopIn [18]: %timeit [sum(x) for x in izip(*l)] #prefer itertools.izip1000 loops, best of 3: 1.28 ms per loopIn [19]: %timeit map(sum, zip(*l))100 loops, best of 3: 1.48 ms per loopIn [20]: %timeit map(sum, izip(*l)) #prefer itertools.izip1000 loops, best of 3: 1.29 ms per loop



