Py Queue库 - 将数组映射到队列 - py3问题

时间:2018-02-28 22:27:07

标签: python python-3.x dictionary queue

我之前发过一个关于执行的脚本的问题 合着要求。由于队列为空,此脚本失败。

我进一步研究了这个问题,并提出了这个简单的问题。 我们有一个基于数组创建队列的函数。 然后我们遍历队列,打印值,直到队列为空。

try:
  from queue import Queue
except:
  pass
try: 
  from Queue import Queue
except:
  pass

def test():
  q = Queue()
  a = [1,2,3]
  map(q.put, a)
  print("queue size after insertion: ", str(q.qsize()))
  while not q.empty():
    item = q.get()   
    print(item)
     

if __name__ == "__main__":
  print("Starting test.")
  test()
  print("Test finished.")

在python2中,一切正常。插入后的队列大小为3

在python3中,插入后,队列大小为0,因此没有执行队列上的迭代。

解: 更改插入方法解决了问题。 替换:

map(q.put, a)

有:

 for item in a:
     q.put(item)

我想知道是什么原因导致python3中的map函数出现这个问题。

0 个答案:

没有答案