在python中,如何正确使用队列?

在python中,如何正确使用队列?,python,python-3.x,Python,Python 3.x,到目前为止,我有以下几点: fnamw = input("Enter name of file:") def carrem(fnamw): s = Queue( ) for line in fnamw: s.enqueue(line) return s print(carrem(fnamw)) 上面没有打印我输入的文件中的数字列表,而是获得以下信息: <__main__.Queue object at 0x0252C930> 当打印队列

到目前为止,我有以下几点:

fnamw = input("Enter name of file:")
def carrem(fnamw):
    s = Queue( )
    for line in fnamw:
        s.enqueue(line)
    return s

 print(carrem(fnamw))
上面没有打印我输入的文件中的数字列表,而是获得以下信息:

<__main__.Queue object at 0x0252C930>

当打印
队列时,您只是直接打印对象,这就是为什么会得到该结果

您不想打印对象表示,但我假设您想打印队列的内容。为此,您需要调用队列的
get
方法。值得注意的是,这样做会耗尽队列

print(carrem(fnamw))
替换为
print(carrem(fnamw).get())
应打印队列的第一项


如果您真的只想打印队列中的项目列表,您应该只使用列表。如果您正在寻找FIFO(先进先出)数据结构,则队列是特别需要的。

在我看来,您实际上不需要该程序中的
队列。队列主要用于多线程编程中的同步和数据传输。而这似乎并不是你想要做的

为了便于使用,您也可以使用普通的Python列表:

fnamw = input("Enter name of file:")
def carrem(fnamw):
    s = []
    for line in fnamw:
        s.append(line)
    return s

print(carrem(fnamw))
然而,同样地,您实际上并没有读取该文件。您引用的程序只需将文件名中的每个字符作为自己的帖子放入列表(或队列)。你真正想要的是:

def carrem(fnamw):
    s = []
    with open(fnamw) as fp:
        for line in fp:
            s.append(line)
    return s
或者更简单一点:

def carrem(fnamw):
    with open(fnamw) as fp:
        return list(fp)

我想我可能能够使用这个列表,但我想学习使用队列或堆栈,我知道这是可能的done@rggod当您有理由使用队列时,请使用队列。试图让他们陷入毫无意义的尴尬境地只会让你和阅读你代码的人感到困惑。但仅仅做上面的事情并不是我停止的地方,我试图删除翻转值,所以我认为队列将是获取翻转值的最佳方式什么是翻转值?另外,如果您认为以后可能需要排队,我建议您提出一个问题。打印队列中的值列表不是不耗尽队列的事情。我想验证我的队列是否正在接收数据?