Python将字符串数组转换为字节数组

Python将字符串数组转换为字节数组,python,python-3.x,list,arraylist,Python,Python 3.x,List,Arraylist,我试图将二进制值的字符串数组oldlist=['00000100'、'10100001'、'11000001'、'11100001']转换为其值的字节,作为十六进制代码,因此生成的列表将如下所示newlist=[b'\x04',b'\xa1',b'\xc1',b'\xc1',b'\xe1']。我得到了循环遍历第一个列表并附加到前一个列表或进行某种列表比较的基本概念。但是我找不到将“00000100”转换为“b'\x04'”的函数您可以使用int(number,2)将字符串转换为整数: oldli

我试图将二进制值的字符串数组
oldlist=['00000100'、'10100001'、'11000001'、'11100001']
转换为其值的字节,作为十六进制代码,因此生成的列表将如下所示
newlist=[b'\x04',b'\xa1',b'\xc1',b'\xc1',b'\xe1']
。我得到了循环遍历第一个列表并附加到前一个列表或进行某种列表比较的基本概念。但是我找不到将“00000100”转换为“b'\x04'”的函数

您可以使用
int(number,2)
将字符串转换为整数:

oldlist = ["00000100", "10100001", "11000001", "11100001"]

out = list(map(lambda x: bytes([int(x, 2)]), oldlist))
print(out)
印刷品:

[b'\x04', b'\xa1', b'\xc1', b'\xe1']

您可以使用
string.getBytes()

首先需要将二进制字符串转换为整数。为此,可以使用基数为2的int()方法。然后,要将其转换为字节,请使用bytes()方法,如bytes([x])


这是行不通的。如果您用一个简单的字符串来尝试它,比如说,
“Hello World!”
,您将得到一条错误消息:AttributeError:“str”对象没有属性“getBytes”
。看起来您正在考虑Java;这个问题是针对Python.oops的。对于这个错误,我真的很抱歉。是的,我以为是用Java写的。所以Python中的相同想法是bytes()
>>> oldlist = ['00000100', '10100001', '11000001', '11100001']
>>> list(map(lambda x: bytes([int(x, 2)]), oldlist))
[b'\x04', b'\xa1', b'\xc1', b'\xe1']