我正在寻找 python 中的方法来对仅包含整数的列表列表求和。
我看到 sum()
方法仅适用于列表,但不适用于列表列表。
有适合我的吗?
谢谢
最佳答案
您可以在此处将 sum()
与生成器表达式一起使用:
In [18]: lis = [[1, 2], [3, 4], [5, 6]]
In [19]: sum(sum(x) for x in lis)
Out[19]: 21
或:
In [21]: sum(sum(lis, []))
Out[21]: 21
timeit
比较:
In [49]: %timeit sum(sum(x) for x in lis)
100000 loops, best of 3: 2.56 us per loop
In [50]: %timeit sum(map(sum, lis))
100000 loops, best of 3: 2.39 us per loop
In [51]: %timeit sum(sum(lis, []))
1000000 loops, best of 3: 2.21 us per loop
In [52]: %timeit sum(chain.from_iterable(lis)) # winner
100000 loops, best of 3: 1.43 us per loop
In [53]: %timeit sum(chain(*lis))
100000 loops, best of 3: 1.55 us per loop
关于python - 列表列表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334722/