如何正确地向字典中添加额外的层(或更好的选择)

在我的程序中,我要求用户做出选择。这些选择然后从字典中的键/嵌套键/值位置提取数据,然后进行计算。我目前在我的一个文件中创建了很多字典,但理想情况下希望将其缩小为一个(或至少更少)字典,因为我相信这将允许编写其余代码更顺利地继续前进。


我想知道如何正确地将图层添加到字典中,或者.. 有没有比字典更好的选择?


我目前有很多这样的:


nameofdict = { 'KEY': 'NESTED KEY': 'VALUE', 'NESTED KEY': 'VALUE'},

               'KEY': 'NESTED KEY': 'VALUE', 'NESTED KEY': 'VALUE'}}

但想要更多类似的东西:


nameofdict = { 'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE', 'DOUBLE 

                NESTED KEY': 'VALUE'}},

               'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE', 'DOUBLE 

                NESTED KEY': 'VALUE'}}}

如果某个“项目”没有该参数,则最终能够跳过某些级别,例如:


nameofdict = { 'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE', 'DOUBLE 

                NESTED KEY': 'VALUE'}},

               'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE', 'DOUBLE 

                NESTED KEY': 'VALUE'}},                      

                      {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE', 'DOUBLE 

                NESTED KEY': 'VALUE'}}}

我已经在数据输入上投入了时间,并制作了一个程序来使嵌套字典的创建更容易、更快,所以我正在尝试使用我已经花时间在的东西。我刚刚开始熟悉 Python 的所有功能当我学习这门语言时,提供并慢慢地使我的代码更简单、更统一。


天涯尽头无女友
浏览 124回答 2
2回答

炎炎设计

你只需要先声明结构,然后你就可以使用它my_list = list()my_dict = dict()my_list.append(my_dict)my_list[0]['KEY'] = dict()my_list[0]['KEY']['NESTED KEY'] = dict()my_list[0]['KEY']['NESTED KEY']['DOUBLE NESTED KEY'] = 'VALUE'print(my_list)输出:[{'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE'}}}]之后,如果您需要向数组添加更多对象,您可以这样做。my_list = list()my_dict1 = dict()my_dict2 = dict()my_list.append(my_dict1)my_list.append(my_dict2)my_list[0]['KEY'] = dict()my_list[0]['KEY']['NESTED KEY'] = dict()my_list[0]['KEY']['NESTED KEY']['DOUBLE NESTED KEY'] = 'VALUE1'my_list[1]['KEY'] = dict()my_list[1]['KEY']['NESTED KEY'] = dict()my_list[1]['KEY']['NESTED KEY']['DOUBLE NESTED KEY'] = 'VALUE2'print(my_list)输出[  {'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE1'}}},  {'KEY': {'NESTED KEY': {'DOUBLE NESTED KEY': 'VALUE2'}}}]

素胚勾勒不出你

您也可以创造性地使用defaultdict. 这很短,将根据需要创建字典。from collections import defaultdictnested_dict = lambda: defaultdict(nested_dict)nest = nested_dict()nest[0]['KEY']['NESTED KEY']['DOUBLE NESTED KEY'] = 'VALUE'nest[1]['KEY']['NESTED KEY']['DOUBLE NESTED KEY'] = 'VALUE'然后,如果您通过以下方式打印它:import jsonprint(json.dumps(nest, indent=4))输出:{    "0": {        "KEY": {            "NESTED KEY": {                "DOUBLE NESTED KEY": "VALUE"            }        }    },    "1": {        "KEY": {            "NESTED KEY": {                "DOUBLE NESTED KEY": "VALUE"            }        }    }}免责声明:defaultdict如果找不到,A将创建一个条目。在某些情况下,这可能对您不利。例如,如果我这样做:bad_nest = nested_dict()print(bad_nest[2]) # This will output {}, but will also add {2: {}} to the dict
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python