Python双端队列

时间:2014-04-18 13:57:11

标签: python python-2.7 queue

msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')

这里我试图创建一个字符串deque,但是当我弹出元素或尝试使用Python 2.7从中读取元素时,我会通过char获取char。

我怎样才能使它以与插入字符串相同的方式返回字符串?

即。我希望MYQ[1] 'asdf'MYQ.pop()返回msg

1 个答案:

答案 0 :(得分:5)

可能是这样的:

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一个可以产生整个字符串的迭代。