我运行下面的代码:
from collections import deque
q = deque([('0000',0)])
a = q.popleft()
print(a)
print(type(a))
b = [('0000',0)]
print(b)
print(type(b))
Run Code Online (Sandbox Code Playgroud)
输出是:
('0000', 0)
<class 'tuple'>
[('0000', 0)]
<class 'list'>
Run Code Online (Sandbox Code Playgroud)
我想知道为什么 type of ais tuple,但是bis list。我期待q.popleft()回来[('0000', 0)]。
deque接受一个迭代作为它的参数。然后解压那个可迭代对象以获取填充双端队列的元素。
即,如果你通过
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
以deque作为
q = deque([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
双端队列会1,2并3作为其元素。不是[1, 2, 3]
(因此,您不能deque使用多个参数初始化 a以用作其元素。)
如果你认为deque只是一个列表,
deque([1,2,3])相当于列表[1,2,3],不是[[1, 2, 3]]。因为它相当于[[1, 2, 3]],你必须打电话deque([[1,2,3]])
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |