我是队列实现的新手,需要一些帮助来练习。
假设我正在使用 enqueue 对 4 个人进行排队,并且我想向输出添加一个函数,以显示 1 到 10 之间的随机数“x”4 次,并符合以下条件:
如果“x”在 1-8 之间,则名称将添加到队列中。 如果 'x' 是 9 或 10,程序会将 'exit' 压入堆栈数据结构并退出 4 的循环,并使用 pop 方法显示堆栈上的所有名称
此外,条件是显示名称的最大数量为 4,最小数量为 0。 然后,将在输出处显示已添加到队列中的名称的结果。
如何添加这个?
import random # We will need this to generate the random number
class Queue:
def __init__(self):
self.container = []
def isEmpty(self):
return self.size() == 0
def enqueue(self, item):
self.container.append(item)
def dequeue(self):
self.container.pop(0)
def size(self):
return len(self.container)
def peek(self) :
return self.container[0]
q = Queue()
names = ["Same", "Peter", "James", "Daniel"] # List of possible names
for i in range(0,4): # for loop 4 times
rand = random.randint(1, 10) # Choose a random number
print("Number Generated:\n" + str(rand)) # Display selected number
if rand >= 9: # number is 9 or 10
break # Break out of the loop, you can also add other logic here
else: # number is less than 9
q.enqueue(random.choice(names)) # Enqueue a random name
print(q.items)
我希望实现这样的输出
Number generated:
8
Number generated:
3
Number generated:
2
Number generated:
10
Completed.
Names of people added to queue:
#3 - James
#1 - Sam
#2 – Peter
最佳答案
听起来你想生成一个随机数,如果随机数满足特定条件,则将一个值排入队列,否则打破循环。使用您对 Queue 类的定义,以下内容应执行此操作:
import random # We will need this to generate the random number
q = Queue() # Initialize the Queue just like you had it
names = ["Same", "Peter", "James", "Daniel"] # List of possible names
for i in range(0,4): # for loop 4 times
rand = random.randint(1, 10) # Choose a random number
print("Number Generated:\n" + str(rand)) # Display selected number
if rand >= 9: # number is 9 or 10
break # Break out of the loop, you can also add other logic here
else: # number is less than 9
q.enqueue(random.choice(names)) # Enqueue a random name
希望这有助于解决您的问题。
关于python - 使用 enqueue 将数字生成器添加到堆栈数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47727551/