python - 求和二维的最简单方法? (Python)

标签 python list int sum dimension

我需要有关二维求和的帮助。

假设我的维度为 [[0,1,2],[3,4,5]],将这些数字相加将返回 int 15。

   def sum_dimensions(x):
       x = []
       answer = sum(x)
       return int(x)

非常感谢指出我在代码中的错误。

最佳答案

让我们深入探讨一下。我在我的机器上使用了以下数据集:

data = list(list(range(100000)) for i in range(1000))

我得到以下结果:

In [13]: %%timeit                                             
sum(sum(ele) for ele in data)
   ....: 
1 loops, best of 3: 1.15 s per loop

In [14]: %%timeit                                             
sum([sum([item for item in ele]) for ele in data])
   ....: 
1 loops, best of 3: 3.78 s per loop


In [15]: %%timeit                                             
sum(j for i in data for j in i)
   ....: 
1 loops, best of 3: 4.92 s per loop

In [16]: %%timeit                                             
sum(itertools.chain.from_iterable(data))
   ....: 
1 loops, best of 3: 1.61 s per loop

In [18]: %%timeit
sum(map(sum, data))
   ....: 
1 loops, best of 3: 1.16 s per loop

但是,对于小数据集,itertools 变体比 sum(sum 变体快 2 倍。sum(map(sum 似乎精确映射到 sum(sum(ele) for ele in data) 构造

关于python - 求和二维的最简单方法? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872065/

相关文章:

C(C++、Objective-C)从 float 到 int 的类型转换导致 int 递减

python - Python 2.7 的蓝牙?

python - 当被多个测试函数调用时,Pytest 是否缓存 fixture 数据?

java - 将元素添加到实体对象java

c++ - 案件未执行

c# - 在 C 和 C# 中将 int 提升为 unsigned int

python - 在 Serializer DRF 中添加非模型字段

python - Jedi-vim 不工作

python - 按值python打印字典键和值

Java int 不更新。它重置