【发布时间】:2020-06-20 20:04:30
【问题描述】:
我有一个 1 和 0 的列表 --> output = [1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0]
我想将 1 和 0 的列表转换为字符串,其中“litlle-endian”中的每 8 位代表“latin1”中的一个字母
到目前为止,我的这段代码(如下)运行良好,但我认为它很慢并且似乎减慢了我的脚本......
for i in range(0,len(output),8):
x=output[i:i+8]
l="".join([str(j) for j in x[::-1]])
out_str += chr(int(("0b"+l),base=2))
你有更快的想法吗?
【问题讨论】:
-
你用这个程序做什么?您是否在数千个不同值的列表中反复执行此操作?我必须运行您的样本 100,000 次(!)才能获得超过亚秒级的时间。如果输出是文本,我会解码 200,000 个字符——一本书中大约有一千 页。
标签: python python-3.x string list binary