【发布时间】:2021-03-16 11:05:07
【问题描述】:
我设法通过以下方式创建了一个零列表作为字典值:
from collections import defaultdict
diction = defaultdict(lambda: list(np.zeros(len(8))))
调用上面的结果是一个空字典,所以调用diction[0] 给出:
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
它允许我用我想要的任何值或元组覆盖零,但它不允许我附加值。
所以我想要做的不是有一个零列表,而是有9个空列表,所以当调用diction[0]时,输出应该是这样的:
[[], [], [], [], [], [], [], [], []].
我知道如何使用 for 循环来做到这一点,但我想要一种更有效的方法,如果可能的话,使用 lambda。
【问题讨论】:
-
该列表很可能是最有效的。绝对比 lambda 表达式快。您应该只使用列表理解
my_list = {i: [] for i in range(N)}。这就是“python”的方式。 -
谢谢,绝对有帮助。
标签: python list dictionary lambda empty-list