【问题标题】:How to Convert Dictionary Values to sets of Dictionaries如何将字典值转换为字典集
【发布时间】:2019-09-13 05:15:02
【问题描述】:

我正在尝试解决一些图形问题,但我被困在了中途。我有一个 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}} 

如果您注意到,原来的字典值已成为自己的字典,并且撇号 ('') 已关闭。

有人可以帮助我,或者给我指点。谢谢

【问题讨论】:

    标签: python python-3.x dictionary set


    【解决方案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}}
    

    【讨论】:

    • 轰隆隆!非常感谢。我更改为 int(key) 和 int(val) 将字符串项转换为整数。谢谢
    【解决方案2】:

    你快到了。只需使用 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}}
    

    【讨论】:

    • 感谢您的宝贵贡献。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2018-08-21
    相关资源
    最近更新 更多