如何将字典值转换为字典集

时间:2019-04-24 00:20:35

标签: python python-3.x dictionary set

我正在尝试解决一些图形问题,但是我陷入了一半。我有一组python字典,但我想将原始字典值(即集合)转换成字典,以便该集合中的每个值成为一个键,该键的另一个值为1。我想这就是称为嵌套字典-我不确定。

我遍历了dict.values(),分配给变量xxx,并使用了dict.fromkeys(xxx, 1)代码,它起作用了,但是我无法将结果整合回原始字典中。

以下是字典的示例:

d = {'35': {'1', '37', '36', '71'}, '37': {'1', '35'}} 

我希望输出看起来像:

d = {35: {1 : 1, 37 : 1, 36 : 1, 71 : 1}, 37: {1 : 1, 35 : 1}} 

如果您注意到,原始词典值已成为它们自己的词典,并且撇号('')处于关闭状态。

请有人帮我,或给我指点。谢谢

2 个答案:

答案 0 :(得分:1)

您只需要一点列表理解即可:

def convert(input):
    return {key: {val: 1 for val in vals} for key, vals in input.items()}

print(convert({'35': {'1', '37', '36', '71'}, '37': {'1', '35'}}))
# {'35': {'1': 1, '37': 1, '36': 1, '71': 1}, '37': {'1': 1, '35': 1}}

答案 1 :(得分:0)

您快到了。只需使用int包装键和值:

{int(k):dict.fromkeys(map(int, v), 1) for k, v in d.items()}

输出:

{35: {37: 1, 71: 1, 36: 1, 1: 1}, 37: {35: 1, 1: 1}}