如何在一个队列中放入和获取一组多个项目?

问题描述 投票:5回答:3

工作者。

def worker():
    while True:
        fruit, colour = q.get()
        print 'A ' + fruit + ' is ' + colour
        q.task_done()

把项目放入队列。

fruit = 'banana'
colour = 'yellow'
q.put(fruit, colour)

输出:

>>> A banana is yellow

我怎样才能实现这个目标?我试了一下,得到 ValueError: too many values to unpack我才意识到,我的 q.put() 把这两个变量放到队列中。

有没有办法像我尝试的那样,把 "一组 "变量objects放到一个单一的队列项中?

python variables task-queue
3个回答
10
投票

是的,使用元组。

fruit = 'banana'
colour = 'yellow'
q.put((fruit, colour))

它应该会自动解包(应该,因为我现在还不能尝试)。


1
投票

我只是会做一个列表。

fruit = 'banana'
colour = 'yellow'
q.put([fruit, colour])

然后像这样得到它。

result = q.get()
fruit = result[0]
colour = result[1]

0
投票

所以,我认为最好的方法是重构一下你的数据。 做一些对象来存放一对值(在本例中是水果和颜色),然后把这个对象放到队列中,然后在需要的时候拉出变量。

如果你愿意,我可以稍后发一些示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.