嵌套多个词典,可能是列表?

时间:2016-06-02 03:34:19

标签: python python-3.x dictionary nested

我正在尝试构建一个python程序来获取用户输入的汽车年份,之后模型(不需要make它只包含fords)。根据年份和型号,程序将参考正确的年份和型号,并获得相应的车辆容量信息(发动机油,冷却液,制动液等)。

我的问题是,如何存储该信息?
我想要制作一个car_list词典,并在关键年份将1998年第一年的鸟巢列入当年的车辆列表,并在每个车厢中列出规格字典。

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

这会有用吗?我是不是错了?

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

在这里使用字典是一个好主意。但是你的代码看起来并不合适。使用以下格式:

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

打印(car_list [ '1998'] [ '公民'] [ '油'])

答案 2 :(得分:0)

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

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]))