【发布时间】:2020-10-17 17:27:02
【问题描述】:
我想压缩这个语法以避免双重字典理解(我希望获得一些计算时间)
d1 = {loc:list(np.sum(data, 0)) for loc, data in dicos.items()}
d2 = {loc:np.nancumsum(list(np.sum(data, 0))) for loc, data in dicos.items()}
我试过这个没有成功
d1,d2 = [{loc:list(np.sum(data, 0)),loc:np.nancumsum(list(np.sum(data, 0)))} \
for loc, data in dicos.items()]
【问题讨论】:
-
“没有成功”是什么意思?你得到不正确的结果吗?如果您遇到错误,请edit您的问题并将错误的全文复制到其中。
-
如果你想要 2 个不同的字典,我不明白,你必须创建 2 次。即使您能够单线完成,时间当然与两线方法相同
-
没有两个表达式就不能构造两个字典。您也许可以将两者都包含在一些理解中,但我怀疑这会对您有很大帮助。需要构造
lists吗?如果没有list(...)调用,我怀疑您仍然可以获得一些性能。 -
@venky__ 我认为他们希望避免重复
dicos.items()两次。 -
这些操作需要多长时间?这只是一个学术练习,还是你有足够的数据来处理它值得额外的努力?如果您真的需要节省时间,也许您应该使用
multiprocessing模块并在单独的内核上并行运行每个模块。
标签: python dictionary-comprehension