繁体   English   中英

将多个项放在python队列中

[英]Put multiple items in a python queue

假设您有一个可迭代items其中包含应放入队列q 当然你可以这样做:

for i in items:
    q.put(i)

但感觉没必要用两行写这个 - 那应该是pythonic吗? 没有办法做更具可读性的事情 - 就像这样

q.put(*items)

使用内置的map功能:

map(q.put, items)

它会将q.put应用于q.put中的所有项目。 有用的单线。


对于Python 3,您可以使用如下:

list(map(q.put, items))

或者:

from collections import deque
deque(map(q.put, items))

但是在这一点上, for循环更具可读性。

q.extend(items)

应该简单和Pythonic够了

如果你想要它在队列的前面

q.extendleft(items)

Python文档:

https://docs.python.org/2/library/collections.html#collections.deque.extend

有什么不可读的?

for i in items:
    q.put(i)

可读性与“短”不同,单行不一定更具可读性; 通常情况恰恰相反。

如果你想要一个q.put(*items)的API,可以考虑创建一个简短的帮助函数,或者q.put(*items) Queue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM