【问题标题】:Python deque of strings字符串的Python双端队列
【发布时间】:2014-04-18 13:57:11
【问题描述】:
msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')

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

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

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

【问题讨论】:

  • 那是因为字符串是可迭代的。

标签: python python-2.7 queue


【解决方案1】:

大概是这样的:

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

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2021-12-23
    • 2018-07-02
    • 2023-04-02
    • 2018-09-08
    • 1970-01-01
    • 2015-02-02
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多