1

我有一个节点队列,我需要对它们有一个上限和下限,所以我有一个名为 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')))
4

1 回答 1

1

deque的输入是一个iterable,因此任何可迭代的数据结构都足够了:list、tuple、set、dict 等。

或者,您可以使用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))

希望这可以帮助 :-)

于 2019-10-05T00:04:13.343 回答