【问题标题】:Deque changes bytes to ints when it is extendedDeque 在扩展时将字节更改为整数
【发布时间】:2012-12-18 13:02:37
【问题描述】:
from collections import deque

recvBuffer = deque()
x1 = b'\xFF'
recvBuffer.append(x1)
recvBuffer.extend(x1)
x2 = recvBuffer.pop()
x3 = recvBuffer.pop()
print(type(x1))
print(type(x2))
print(type(x3))

以上代码在Python 3.2.3上打印以下内容

<class 'bytes'>
<class 'int'>
<class 'bytes'>

当extend()-ed 到一个双端队列时,为什么字节变成了一个int?

【问题讨论】:

    标签: python python-3.x int byte deque


    【解决方案1】:

    bytesdocumented 是一个整数序列:

    “bytes”对象,它是一个不可变的整数序列,范围为 0

    当您extend 时,您会遍历序列。当您遍历 bytes 对象时,您会得到整数。请注意,deque 与此无关。在普通列表中使用 extend 或仅使用 for byte in x1 时,您会看到相同的行为。

    【讨论】:

    • 嗯...我想这是有道理的。我实际上是将这些字节添加到队列中,以便一次处理 16 位。取出它们后必须将它们转换回字节是相当烦人的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多