python - 使用 enqueue 将数字生成器添加到堆栈数据结构

标签 python

我是队列实现的新手,需要一些帮助来练习。

假设我正在使用 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/

相关文章:

python - 从 MATLAB 执行 Powershell 命令

python - CMake 错误 : The following variables are used in this project, 但它们被设置为 NOTFOUND。 PYTHON_LIBRARIES(高级)

python - 如何确定python中视频的开始时间和结束时间(自纪元以来的秒数)?

python - 有没有办法撤消递归正则表达式操作?

python - 使用 Mechanize 进行 Scraping,遇到 HTTP 错误 403

python - Pytesseract,试图从屏幕上检测文本

python - 将一组文本文件中的第 2 列添加到 1 个文本文件中

python - Pyspark 多 groupby 具有不同的列

python - 在 Tkinter 中创建超链接

python - 如何舍入仅在 Pandas 中显示的值,同时将原始值保留在数据框中?