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


在这里,我试图创建一个双端队列,但是当我弹出元素或尝试使用Python 2.7从中读取元素时,我会逐个获取char。

如何使它返回与插入字符串相同的字符串?

即我希望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一个可迭代的变量,它将产生整个字符串。

关于python - 字符串的Python双端队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23155642/

10-12 22:46