添加将创建最终总收据的多个词典中的值

时间:2014-11-27 00:33:58

标签: python dictionary

所以我试图在用户输入之后添加来自四个词典的值(这个程序在商店中需要不同类型的东西,所以我为四种类型的东西创建了四个词典),我就在这里我想创建一个最终的总数,但我有点难过关于如何添加(可能)所有四个词典的任何订购。其中包括销售税,但我并不特别担心这个问题。

drinks_list = []
drinks_list = sorted(drinks_dict.items(), key = lambda x: x[1][1], reverse = True)
if drinks_list:
    print("Drinks")
    for item in drinks_list:
        if item[1][2] > 0:
            print("Selection: %s, Cost: %.2f, Ordered: %i "%(item[1][0], item[1][1], item[1][2]))

salads_list = []
salads_list = sorted(salads_dict.items(), key = lambda x: x[1][1], reverse = True)
if salads_list:
    print("Salads")
    for item in salads_list:
        if item[1][2] > 0:
            print("Selection: %s;;; Cost:%.2f;;; OrderCount:%i "%(item[1][0], item[1][1], item[1][2]))

sandwiches_list = []
sandwiches_list = sorted(sandwiches_dict.items(), key = lambda x: x[1][1], reverse = True)
if sandwiches_list:
    print("Sandwiches")
    for item in sandwiches_list:
        if item[1][2] > 0:
            print("Selection: %s;;; Cost:%.2f;;; OrderCount:%i "%(item[1][0], item[1][1], item[1][2]))

desserts_list = []
desserts_list = sorted(desserts_dict.items(), key = lambda x: x[1][1], reverse = True)
if desserts_list:
    print("Desserts")
    for item in desserts_list:
        if item[1][2] > 0:
            print("Selection: %s;;; Cost:%.2f;;; OrderCount:%i "%(item[1][0], item[1][1], item[1][2]))

只有完整程序代码的一部分。

1 个答案:

答案 0 :(得分:0)

也许是这样的:

def add_up(items, name):
    items_list = sorted(items.items(), key = lambda x: x[1][1], reverse = True)
    if items_list:
    print(name)
    for item in items_list:
        if item[1][2] > 0:
            print("Selection: %s, Cost: %.2f, Ordered: %i "%(item[1][0], item[1][1], item[1][2]))
            return item[1][1]*item[1][2]

total = 0
order = {'Drinks':drinks_dict, 'Salads':salads_dict, 'Sandiwches':sandwiches_dict, 'Desserts':desserts_dict]
for o in order:
    total += add_up(order[o], o)

print "Total cost = %.2f" % total