用 Python 词典理解填充不同的词典
Populate different dictionaries with Python dictionary comprehension
我想压缩这个语法以避免双重字典理解(我希望获得一些计算时间)
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()]
我不理解我们社区最近对尝试将越来越多的功能推入单一理解的痴迷。不仅结果通常并不比使用可见循环更有效,而且当作为一个单一的、复杂的理解来完成时,代码的可读性肯定要差得多。我认为人们不明白的是,无论哪种方式,循环仍然以几乎相同的形式存在……只是如果您使用理解,它就隐藏在 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)))
我想压缩这个语法以避免双重字典理解(我希望获得一些计算时间)
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()]
我不理解我们社区最近对尝试将越来越多的功能推入单一理解的痴迷。不仅结果通常并不比使用可见循环更有效,而且当作为一个单一的、复杂的理解来完成时,代码的可读性肯定要差得多。我认为人们不明白的是,无论哪种方式,循环仍然以几乎相同的形式存在……只是如果您使用理解,它就隐藏在 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)))