<p>你想要生成一个新的字典,在那里你总结了所有客人的所有菜肴。你知道吗</p>
<pre><code>from collections import defaultdict
def sum_up_all_dishes(all_guests):
dishes = defaultdict(int)
for dish in all_guests.values():
for name, amount in dish:
dishes[name] += amount
return dishes
all_guests = {
"Alice": {"apples": 5, "pretzels": 12},
"Bob": {"ham sandwiches": 3, "apples": 2},
"Carol": {"cups": 3, "apple pies": 3}
}
while True:
print("Is there another Guest coming?")
answer = input()
if answer.lower() == "yes":
newdishesDic = {}
print("Who is it? ")
newguest = input()
while True:
print("What does {} bring to the picnic?".format(newguest))
newdish = input()
print("How much of it?")
newquantity = input()
newdishesDic[newdish] = int(newquantity)
print("Anything else?")
answer2 = input()
if answer2.lower() in ("", "no"):
break
all_guests[newguest] = newdishesDic
else:
break
all_dishes = sum_up_all_dishes(all_guests)
for name, amount in dishes.items():
print(" - {}: {}".format(name, amount))
</code></pre>