gpt4 book ai didi

python - 如何使用 for 循环而不是 while 循环遍历 Python Queue.Queue?

转载 作者:IT老高 更新时间:2023-10-28 22:24:43 33 4
gpt4 key购买 nike

通常我们这样编码:

while True:
job = queue.get()
...

但是是否也可以按照以下方式做一些事情:

for job in queue.get():
#do stuff to job

我想这样做的真正原因是因为我想使用 python-progressbar 的自动检测 maxval。他们这样做就像 for this in progressbar(that):

最佳答案

您可以使用 iter与可调用。 (您应该传递两个参数,一个用于可调用对象,另一个用于标记值)

for job in iter(queue.get, None): # Replace `None` as you need.
# do stuff with job

注意 当没有元素剩余并且没有放置哨兵值时,这将阻塞。此外,与 while-get 循环类似,与容器上的普通 for 循环不同,它会从队列中删除项目。

None 是通用值,所以这里有一个更具体的哨兵值示例:

sentinel = object()
for job in iter(queue.get, sentinel):
# do stuff with job

关于python - 如何使用 for 循环而不是 while 循环遍历 Python Queue.Queue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157739/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com