为什么我必须将一个名为tuples的python deque实例化为一个列表?

为什么我必须将一个名为tuples的python deque实例化为一个列表?,python,namedtuple,python-collections,Python,Namedtuple,Python Collections,我有一个节点队列,需要对它们进行上下界,所以我有一个名为QueueEntry的命名元组 QueueEntry = collections.namedtuple('QueueEntry', ('node', 'lower', 'upper')) 当我用列表中的命名元组实例化deque时: bfs_queue = collections.deque([QueueEntry(node, float('-inf'), float('inf'))]) 而不是: bfs_queue = collecti

我有一个节点队列,需要对它们进行上下界,所以我有一个名为QueueEntry的命名元组

QueueEntry = collections.namedtuple('QueueEntry', ('node', 'lower', 'upper'))
当我用列表中的命名元组实例化deque时:

bfs_queue = collections.deque([QueueEntry(node, float('-inf'), float('inf'))])
而不是:

bfs_queue = collections.deque(QueueEntry(node, float('-inf'), float('inf')))
deque的输入是一个,所以任何可编辑的数据结构都足够了:列表、元组、集合、dict等等

或者,可以使用append()或appendleft()方法直接附加对象:


希望这有帮助:-)

因为
deque
需要一个iterable(可以传入元组、列表等),为什么要使用上一个版本?deque是一系列对象,而不是单个对象。
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))