假设我有几个字典(每小时一本),它们都有相同的键:
h1={'a':1, 'b':3, 'c':10}
h2={'a':7, 'b':15, 'c':2}
h3={'a':9, 'b':15, 'c':35}
如何获得所有时间和键的接下来几个小时之间的绝对值总和,即以下形式的总和:
|1-7|+|7-9|+|3-15|+|15-15|+|10-2|+|2-35|
更一般地说,它的形式如下:
其中 beta 为 1,pst 是我们字典的键,我们也会按小时求和。
最佳答案
使用 numpy,您可以构造一个数组,计算绝对差 ( numpy.diff
+abs
) 和 sum
:
h1={'a':1, 'b':3, 'c':10}
h2={'a':7, 'b':15, 'c':2}
h3={'a':9, 'b':15, 'c':35}
import numpy as np
dicts = [h1, h2, h3]
a = np.array([list(d.values()) for d in dicts])
abs(np.diff(a, axis=0)).sum()
输出:61
测试版:
beta = 1
abs(np.diff(a, axis=0)*beta).sum()
关于python - 如何从字典中获取时间范围和不同名称的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70694243/