gpt4 book ai didi

python - 在 Python 3 中迭代单个字节

转载 作者:IT老高 更新时间:2023-10-28 21:35:04 26 4
gpt4 key购买 nike

在 Python 3 中迭代 bytes 对象时,将单个 bytes 作为 ints:

>>> [b for b in b'123']
[49, 50, 51]

如何获取长度为 1 的 bytes 对象?

以下是可能的,但对读者来说不是很明显,很可能表现不佳:

>>> [bytes([b]) for b in b'123']
[b'1', b'2', b'3']

最佳答案

如果您担心此代码的性能并且 int 作为字节在您的情况下不适合接口(interface),那么您可能应该重新考虑您使用的数据结构,例如,使用 str 对象。

您可以对 bytes 对象进行切片以获得 1 长度的 bytes 对象:

L = [bytes_obj[i:i+1] for i in range(len(bytes_obj))]

PEP 0467 -- Minor API improvements for binary sequences提出 bytes.iterbytes() 方法:

>>> list(b'123'.iterbytes())
[b'1', b'2', b'3']

关于python - 在 Python 3 中迭代单个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com