我有一个二进制字符串,我想将其拆分为31位数组
1101000011010010010000001101101011110010010000001101110011000010110110101100101001000000110100101110011001000000110000101101110011001110110000101110100
这只是二进制字符串的一个示例,但我需要它可以用于任何二进制字符串,如果我想重新加入数组,则保持二进制字符串的完整性。一旦数组生成,将0附加到前面,确保所有内容的长度为31。
由于
答案 0 :(得分:1)
您可以使用正则表达式!
这里
{n,m}匹配前面表达式的至少n次和最多m次。
>>> import re
>>> s = '1101000011010010010000001101101011110010010000001101110011000010110110101100101001000000110100101110011001000000110000101101110011001110110000101110100'
>>> re.findall(r'.{,30}''.',s)
['1101000011010010010000001101101', '0111100100100000011011100110000', '1011011010110010100100000011010', '0101110011001000000110000101101', '110011001110110000101110100']
要使用0'来填充len 31的项目,您可以使用str.ljust
>>> [i.ljust(31,'0') for i in re.findall(r'.{,30}''.',s)]
['1101000011010010010000001101101', '0111100100100000011011100110000', '1011011010110010100100000011010', '0101110011001000000110000101101', '1100110011101100001011101000000']
执行时间:
0.000314
希望它有所帮助!