msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')
我正在尝试创建一个字符串的deque,但是当我使用Python 2.7弹出元素或尝试读取元素时,我得到的是逐个字符而非整个字符串。
如何使其返回与插入方式相同的字符串呢?
例如,我希望MYQ[1]
是'asdf'
,并且MYQ.pop()
返回msg
。
msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')
我正在尝试创建一个字符串的deque,但是当我使用Python 2.7弹出元素或尝试读取元素时,我得到的是逐个字符而非整个字符串。
如何使其返回与插入方式相同的字符串呢?
例如,我希望MYQ[1]
是'asdf'
,并且MYQ.pop()
返回msg
。
MYQ = deque([msg])
演示:
In [1]: from collections import deque
In [2]: msg = 'afdssav'
In [3]: myq = deque([msg])
In [4]: myq.append('asdf')
In [5]: myq
Out[5]: deque(['afdssav', 'asdf'])
deque
的调用签名是:deque([iterable[, maxlen]]) --> deque object
字符串是可迭代的,但当你迭代字符串时,你会得到单个字符。因此,你看到的行为就是这样:
In [7]: deque(msg)
Out[7]: deque(['a', 'f', 'd', 's', 's', 'a', 'v'])
deque
一个可迭代对象,该对象将产生整个字符串。