我有一个节点队列,需要对它们进行上下限限制,所以我有一个名为QueueEntry的命名元组。
QueueEntry = collections.namedtuple('QueueEntry', ('node', 'lower', 'upper'))
当我用列表中的命名元组实例化双端队列时:
bfs_queue = collections.deque([QueueEntry(node, float('-inf'), float('inf'))])
而不是:
bfs_queue = collections.deque(QueueEntry(node, float('-inf'), float('inf')))
deque的输入是iterable,因此任何可迭代的数据结构都足够:列表,元组,集合,字典等。
或者,您可以使用append()或appendleft()方法直接附加对象:
QueueEntry = collections.namedtuple('QueueEntry', ('node', 'lower', 'upper'))
bfs_queue = collections.deque()
bfs_queue.append(QueueEntry(node, float('-inf'), float('inf')))
bfs_queue.append(QueueEntry(another_node, 0, 0))
希望这会有所帮助:-)