【发布时间】:2023-01-09 22:32:02
【问题描述】:
我是 python 的初学者。我们有一个任务要求我们创建一个字典队列。我不确定如何在列表中执行此操作。这是我的代码(顺便说一句,这是播放代码,未在功能上使用)我的主要目标是更好地理解这一点。代码:
class Queue:
def __init__(self):
self.items = []
def size(self):
return len(self.items)
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
if self.size() == 0:
return None
return self.items.pop(0)
def show_queue(self):
print(self.items)
# CODE CHALLENGE
class IceCreamShop:
order = {
"customer" : "",
"flavor" : "",
"scoops" : "",
}
def __init__(self, flavors):
self.flavors = flavors
order = Queue()
def take_order(self, customer, flavor, scoops):
if flavor in self.flavors and scoops in range(1, 4):
for orders in self.order:
self.order["customer"] = customer
self.order["flavor"] = flavor
self.order["scoops"] = scoops
print("Order Created!")
print(self.order)
return self.order
else:
print("Sorry, we don't have that flavor.\n Pick another flavor or less scoops.")
def show_all_orders(self):
for orders in self.order.values():
print(self.order)
def next_order(self):
# show next order in queue
print("Next Order...")
shop = IceCreamShop(["rocky road", "mint chip", "pistachio"])
shop.take_order("Zachary", "pistachio", 3)
shop.take_order("Marcy", "mint chip", 1)
shop.take_order("Leopold", "vanilla", 2)
shop.take_order("Bruce", "rocky road", 0)
shop.show_all_orders()
shop.next_order()
shop.show_all_orders()
我不明白的是,
- 如何为队列中的每个客户保存字典?
- 我将如何为每个客户“出列”和“入列”字典
- 在“take_orders”函数中,它确实返回了 2 个不同的客户,Zach 和 Marcy
- 但是在“show_all_orders”函数中,它只打印出 Marcy?为什么是这样?
【问题讨论】:
标签: python dictionary queue