我在 python 中设置了一个元组字典,存储方式为 {(ID, type): value}。我需要系统地为每个 ID、类型组合添加条目,然后添加 0 作为值。这是一个数据示例:
{(1,2): 5, (2,1): 7, (3,2): 15, (4,3): 10}
对于此示例,ID 范围为 1-4,类型为 1-3。我需要的最终产品是:
{(1,1):0, (1,2):5, (1,3): 0, (2,1):7, (2,2):0, (2,3):0, (3,1):0, (3,2):15, (3,3):0, (4,1):0, (4,2):0, (4,3):10}
您将如何有效地实现最终产品?谢谢
setdefault
上循环使用product
:
from itertools import product
d = {(1,2): 5, (2,1): 7, (3,2): 15, (4,3): 10}
for t in product(*zip(*d.keys())):
d.setdefault(t, 0)
输出:
{(1, 2): 5,
(2, 1): 7,
(3, 2): 15,
(4, 3): 10,
(1, 1): 0,
(1, 3): 0,
(2, 2): 0,
(2, 3): 0,
(3, 1): 0,
(3, 3): 0,
(4, 2): 0,
(4, 1): 0}