python - 如何嵌套可变数量的字典?
问题描述
我正在尝试从用户那里获取一个数字,并基于所述数字我想在整个字典中嵌套该数量的字典。贝娄是我的代码片段。
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)
目前我并不关心效率,我只是不知道如何去做。如果我的解释还不够,请随时提出问题。
我相信需要使用字典,因为我必须根据每个披萨的大小来计算成本。
解决方案
列表可能更适合“订单”。你可以这样做:
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'}]
推荐阅读
- reactjs - Threejs TorusGeometry 组错误:THREE.Object3D
- embedded-linux - 如何在构建时通过 Yocto 添加用户?
- python - 如何使用 tkinter 在新窗口中显示按钮命令的输出?
- c# - 避免在具有内部不同字符的声明中重复
- regex - 使用 Perl 根据字符串搜索删除部分?
- python - 将 numpy 图像数组从 -1、1 标准化到 0,255
- java - 如何将列表映射到其大小
- html - 如何从 R Shiny 中的数据表中删除第一列(索引)
- oracle - 尝试获取联系信息时出现异常情况 (EBS)
- javascript - detailCellRendererParams,Ag-Grid的递归函数?