如何系统地在元组字典集合中填值

问题描述 投票:0回答:1

我在 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}

您将如何有效地实现最终产品?谢谢

python dictionary tuples
1个回答
-1
投票

一个选择是在键的

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}
© www.soinside.com 2019 - 2024. All rights reserved.