kd的程序小设计

其实开始书本的题目做完后是这样的:
allguests = {'Alce':{'apples':5,'pretzels':12,},
'Bob':{'ham sandwiches':4,'apples':2,},
'Carol':{'cups':4,'apples ples':1},
def totalBrought(guest, item):
numBrought = 0
for k,v in guest.items():
numBrought = numBrought + v.get(item,0)
return numBrought
print('Apple - ',totalBrought(allguests,'apples'))                     
print('orange - ',totalBrought(allguests,'orange'))          
print('Ham sandwiches - ',totalBrought(allguests,'ham sandwiches'))
print('Cups - ',totalBrought(allguests,'cups'))
#这个程序是需要提前自己输入食品的名称才能把食品总计出来,如果没有带的食品也就是字典里没有的,输入进去也会打印出来,只不过数量为0
后来我自己就用目前所学的知识,做一个只要把食品清单输入进去,自动就统计好打印出来,就做成下面这样:
# Author kd han
# encoding: utf-8

allguests = {'Alce':{'apples':5,'pretzels':12,},
'Bob':{'ham sandwiches':4,'apples':2,},
'Carol':{'cups':4,'apples ples':1},
}

def totalBrought(itme):
Brought ={} #建立一个存放总计的字典
for i, k in itme.items(): #先取出字典中的信息
for name,n in k.items(): #取出嵌套字典的信息
Brought.setdefault(name,0) #在总计的字典为每一个食品建一个键
Brought[name] = Brought[name] + n #每种食品的数据相加
for i in Brought.keys(): #打印出每种食品的数量
print(i,Brought[i])

totalBrought(allguests)
原文地址:https://www.cnblogs.com/222kd/p/8384905.html