将多个项放在python队列中

IAR*_*ARI 6 python queue

假设您有一个items包含应放入队列的项目的iterable q.当然你可以这样做:

for i in items:
    q.put(i)
Run Code Online (Sandbox Code Playgroud)

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

q.put(*items)
Run Code Online (Sandbox Code Playgroud)

Fun*_*ayu 11

使用内置map功能:

map(q.put, items)
Run Code Online (Sandbox Code Playgroud)

它将适用q.put于列表中的所有项目.有用的单线.


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

list(map(q.put, items))
Run Code Online (Sandbox Code Playgroud)

或者:

from collections import deque
deque(map(q.put, items))
Run Code Online (Sandbox Code Playgroud)

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

  • 推导式和“map”适用于您想要结果的情况,而不是作为单行“for”循环的一种方式;此外,在这种情况下,您可以只执行“for i in items: q.put(i)”。 (2认同)