Python 字符串的双端队列

3 投票
1 回答
1108 浏览
提问于 2025-04-18 03:16
msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')

我在这里尝试创建一个字符串的双端队列(deque),但是当我用Python 2.7从中弹出元素或者读取元素时,却一个字符一个字符地返回。

我该怎么做才能让它返回我插入的字符串,而不是字符呢?

也就是说,我希望 MYQ[1] 返回 'asdf',而 MYQ.pop() 返回 msg

1 个回答

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一个可迭代的对象,这样它就能生成整个字符串。

撰写回答