[英]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.