首页 > 解决方案 > 如何嵌套可变数量的字典?

问题描述

我正在尝试从用户那里获取一个数字,并基于所述数字我想在整个字典中嵌套该数量的字典。贝娄是我的代码片段。

pizzas = ""
pizza = ""
base = ""
ptype = ""
size = ""
order = {
    "pizzas":{
        "pizza":{
            "base":base,
            "type":ptype,
            "size":size
        }
    }
}

pizzaNumber = int(input("How many pizzas would you like to order? "))
x=0
while(x<pizzaNumber):
    print("Details for Pizza #"+str(x+1))
    pizza += "pizza"+str(x)
    base = input("Base (hand tossed, thin crust, regular)? ")
    ptype = input("Type (pepperoni, cheese, veggie lovers hawaiian)? ")
    size = input("Size (small, medium, large)? ")
    
    pizza = {
        "base":base,
        "type":ptype,
        "size":size
    }
    order["pizzas"] = pizza

    x=x+1

print(order)

目前我并不关心效率,我只是不知道如何去做。如果我的解释还不够,请随时提出问题。

我相信需要使用字典,因为我必须根据每个披萨的大小来计算成本。

标签: python

解决方案


列表可能更适合“订单”。你可以这样做:

pizzas = ""
pizza = ""
base = ""
ptype = ""
size = ""
order = []


pizzaNumber = int(input("How many pizzas would you like to order? "))
x=0
while(x<pizzaNumber):
    print("Details for Pizza #"+str(x+1))
    pizza = "pizza"+str(x)
    base = input("Base (hand tossed, thin crust, regular)? ")
    ptype = input("Type (pepperoni, cheese, veggie lovers hawaiian)? ")
    size = input("Size (small, medium, large)? ")
    
    pizza = {
        "base":base,
        "type":ptype,
        "size":size
    }
    order.append(pizza)

    x=x+1

print(order)

输出将是这样的:

[{'base': 'a', 'type': 'z', 'size': 'e'}, {'base': 'q', 'type': 's', 'size': 'd'}]

推荐阅读