使用Python字典理解来填充不同的字典

问题描述

我想压缩这种语法以避免双重字典理解(我希望能获得一些计算时间)

aaa

我尝试了这个但没有成功

kkaaa

解决方法

我不理解我们社区最近对将越来越多的功能推向单一理解的痴迷。结果不仅通常不比使用可见循环更有效,而且以单个复杂的理解完成时,代码的可读性肯定会大大降低。我认为人们不理解的是,无论哪种方式,循环仍然以几乎相同的形式存在……只是如果您理解了它,就将其隐藏在Python库代码中。

这是一种简单易懂的方式来执行所需的操作,只需对数据进行一次传递,构建两个字典,就很清楚您正在做什么:

d1 = {}
d2 = {}
for loc,data in dicos.items():
    d1[loc] = list(np.sum(data,0))
    d2[loc] = np.nancumsum(list(np.sum(data,0)))