我有一个字典列表,键为“a”、“n”、“o”、“u”。 有没有办法加快这个计算,例如 NumPy ?列表中有数万个项目。
数据是从数据库中提取的,所以我必须接受它最初是以字典列表的形式存在的。
x = n = o = u = 0
for entry in indata:
x += (entry['a']) * entry['n'] # n - number of data points
n += entry['n']
o += entry['o']
u += entry['u']
loops += 1
average = int(round(x / n)), n, o, u
最佳答案
我怀疑这会快得多,但我想它是 timeit
的候选者...
from operator import itemgetter
x = n = o = u = 0
items = itemgetter('a','n','o','u')
for entry in indata:
A,N,O,U = items(entry)
x += A*N # n - number of data points
n += N
o += O #don't know what you're doing with O or U, but I'll leave them
u += U
average = int(round(x / n)), n, o, u
至少,它保存了对 entry['n']
的查找,因为我现在已经将它保存到一个变量中
关于python - 从字典列表中优化平均计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014452/