【问题标题】:nesting multiple dictionaries, possibly lists?嵌套多个字典,可能是列表?
【发布时间】:2016-06-02 03:34:19
【问题描述】:

我正在尝试构建一个 python 程序来获取汽车年份的用户输入,然后是模型(不需要制造它只会包含福特)。并结合年份和型号,程序将参考正确的年份和型号,得到车辆相应的容量信息(机油、冷却液、制动液等)。

我的问题是,我该如何存储这些信息?
我正在考虑制作一个 car_list 字典,并将关键年份嵌套在 1998 年的第一年里面,嵌套了那一年的汽车列表,并在每辆车中嵌套了一个规格字典。

car_list = {'years' : {1998 : [{'accord': {'oil' : '4.0 qts', 'coolant': '2 gals'} 'civic': {'oil': '4.5 qts', 'coolant': '3 gals'}]}

这行得通吗?我是不是搞错了?

【问题讨论】:

    标签: python python-3.x dictionary nested


    【解决方案1】:

    可以解决您的问题的简单程序(在 python3 中):

    model=input("model:")
    year=input("year:")
    query={model1:{year1:specs1,year2:specs2 ... }, model2:{ ... } ... }
    print(query[model][year])
    

    规范可以是列表或字典。这取决于您希望如何使用数据。 该程序将提示用户输入,然后将预期年份和型号的规格打印为列表或字典。应该对输出进行操作以满足您的需求。

    【讨论】:

      【解决方案2】:

      在这里使用字典是个好主意。但是您的代码看起来不正确。使用这种格式:

      car_list = {'1998' : {'accord': {'oil' : '4.0 qts', 'coolant': '2 gals'}, 'civic': {'oil': '4.5 qts', '冷却剂': '3 gals'}}}

      print(car_list['1998']['civic']['oil'])

      【讨论】:

        【解决方案3】:

        您可以将所有信息存储在嵌套字典中,我认为这是最好的方法。字典可能如下所示:

        car_list = {"1998":{"ka":["4.0 qts", "2 gals"], 
                            "fiesta":["3.0 qts", "2.3 gals"]},
                    "2001":{"kuga":["3.3 qts", "3 gals"], 
                            "mondeo":["4.0 qts", "3.5 gals"]}}
        

        如果你通过input()向用户询问年份和汽车,如果你使用for循环,你可以一次打印所有信息:

        input_year = input("Year?\n> ")
        input_car = input("Car?\n> ")
        
        for info in car_list[input_year][input_car]:
            print(info)
        

        或者一一给他们信息:

        input_year = input("Year?\n> ")
        input_car = input("Car?\n> ")
        i = car_list[input_year][input_car]
        
        print("Oil: {}\nCoolant: {}".format(i[0], i[1]))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-03
          • 2020-12-21
          • 2018-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多