Python Can';t将字符串列表转换为二进制
我试图通过使用转换一个列表,例如mylist=['apple','spineapple']Python Can';t将字符串列表转换为二进制,python,python-3.x,Python,Python 3.x,我试图通过使用转换一个列表,例如mylist=['apple','spineapple'] [''.join(format(i, 'b') for i in bytearray(mylist, encoding ='utf-8'))] 但是在没有字符串参数的情况下接收“编码或错误”。预期的结果是 ['11000011110000111000011011001100101', '11100001101001110111011001011100001111000011100001101100110
[''.join(format(i, 'b') for i in bytearray(mylist, encoding ='utf-8'))]
但是在没有字符串参数的情况下接收“编码或错误”。预期的结果是
['11000011110000111000011011001100101', '111000011010011101110110010111000011110000111000011011001100101']
如何在列表中以二进制形式获得结果 我认为您将某些函数应用于错误的对象。您正在寻找以下内容:
mylist = ['apple', 'pineapple']
[''.join(format(b, 'b') for b in bytearray(i, 'utf-8')) for i in mylist]
# ['11000011110000111000011011001100101',
# '111000011010011101110110010111000011110000111000011011001100101']
或者再短一点:
[''.join(map('{:b}'.format, bytearray(i, 'utf-8'))) for i in mylist]
必须将bytearray
应用于列表中的每个字符串,而不是列表本身。接下来,必须格式化每个字节并连接结果字符串