<p>你可以迭代所有的客人,并将他们的菜肴添加到一个集合中,得到一套完整的所有菜肴。然后打印每道菜的数量。你知道吗</p>
<pre><code>allGuests = {"Alice": {"apples": 5, "pretzels": 12}, "Bob": {"ham sandwiches": 3, "apples": 2}, "Carol": {"cups": 3, "apple pies": 3}}
def totalBrought(guests, item):
numBrought = 0
for k, v in guests.items():
numBrought = numBrought + v.get(item, 0)
return numBrought
while True:
print("Is there another Guest coming?")
answer = input()
if (answer == "Yes") or (answer == "yes"):
newdishesDic = {}
print("Who is it? ")
newguest = input()
while True:
print("What does " + newguest + " bring to the picnic?")
newdish = input()
print("How much of it?")
newquantity = input()
newdishesDic[newdish] = int(newquantity)
allGuests[newguest] = newdishesDic
print("Anything else?")
answer2 = input()
if (answer2 == "") or (answer2 == "no") or (answer2 == "No"):
break
elif (answer2 == "Yes") or (answer2 == "yes"):
continue
elif (answer == "") or (answer == "no") or (answer == "No"):
break
all_dishes = set()
for guest, dishes in allGuests.items():
all_dishes.update(dishes.keys())
for dish in all_dishes:
print(" - " + dish +": " + str(totalBrought(allGuests, dish)))
</code></pre>