我正在使用Python制作POS系统。我让一切都运转良好,但现在是时候真正开始了。我想根据比萨饼和大小添加一个选项来获得价格。我认为它需要存储在字典和列表字典中。无论如何,现在我处于一个冲动状态,并且无法想出如何正确地解压缩列表来执行此操作。任何和所有的帮助表示赞赏。
这是我正在运行的代码的链接。更容易。 https://gist.github.com/spa1mer/5eba249124d1a237d4adb88395659298
这是我提出的词典:
pizza_prices = {'El Jefe' : [{'small' : 12.99}, {'medium' : 13.99}, {'large'
: 15.99}], 'OMV' : [{'small' : 13.99}, {'medium' : 14.99}, {'large' :
16.99}], 'Dirty Hipster' : [{'small' : 14.99}, {'medium' : 15.99}, {'large'
: 17.99}],}
在我的理论中,我知道它需要在这里与总数一起去。
答案 0 :(得分:0)
这种数据结构可以得到显着改善,但让我尝试使用你拥有的东西。
pizza_prices = {
'El Jefe' : [{'small' : 12.99}, {'medium' : 13.99}, {'large' : 15.99}],
'OMV' : [{'small' : 13.99}, {'medium' : 14.99}, {'large' : 16.99}],
'Dirty Hipster' : [{'small' : 14.99}, {'medium' : 15.99}, {'large' : 17.99}]
}
def get_price(name, size):
sizes = pizza_prices[name]
size_dict = list(filter(lambda s: size in s, sizes))[0]
return size_dict[size]
首先用披萨的名称抓住列表。然后它将列表过滤到只包含你的披萨大小的字典,最后返回它的价格。
最后,请注意您的词典可以有多个条目:
{'small': 12.99, 'medium': 13.99, 'large': 15.99}
这至少会将你的提取方法变成:
def get_price(name, size):
return pizza_prices[name][size]