python - 如何将字符和字节列表转换为纯字节列表?

标签 python list

我有一个混合了字符和字节的列表,看起来像这样:

myData = ['a', '\x65', 'B', '\x66\x69', 'C']

我想把这个列表转换成字节数组,所以:

myByteArray = ['\x61' , '\x65', '\x42', '\x66', '\x69', '\x43']

到目前为止,我尝试的是在 myData 上进行简单显示 --

myData = ['a', '\x65', 'B', '\x66\x69', 'C']
print " ".join(hex(ord(n)) for n in myData)

由于数组中有一个元素恰好是两个字节,所以会抛出这个错误:

Traceback (most recent call last):
  File "./test.py", line 3, in <module>
    print " ".join(hex(ord(n)) for n in myData)
  File "./test.py", line 3, in <genexpr>
    print " ".join(hex(ord(n)) for n in myData)
TypeError: ord() expected a character, but string of length 2 found

如何将原始列表 myData 转换为字节数组 myByteArray?

最佳答案

您可以将它们全部合并并再次拆分以获得单独的字符,例如:

   output_list = [hex(ord(c)) for c in ''.join(myData)]

尝试一下,

>>> myData = ['a', '\x65', 'B', '\x66\x69', 'C']
>>> [hex(ord(c)) for c in ''.join(myData)]
['0x61', '0x65', '0x42', '0x66', '0x69', '0x43']

关于python - 如何将字符和字节列表转换为纯字节列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255012/

相关文章:

python - 文档字符串中 __init__ 的返回类型

python - 将(标量)函数数组转换为返回数组的函数

python - 如何在colab中解压图片文件夹

python - 获取列表中相邻元素的所有组合

python - 如何通过python使用lambda函数从列表中删除负值

c - c中列表的选择排序

除 localhost 之外的 Python SMTP

python - 将 django sorl-thumbnail 与 django form-utils 一起使用

python - 对列表 'int' 元素执行算术运算

python - 迭代数据帧行