我有一个关于将长二进制字符串分成较短二进制字符串的问题。
例如,我正在尝试转换......
000000100000000011000000100000000010000000100000000001
为...
000000100000000011
000000100000000010
000000100000000001
所以基本上,我正在寻找一个python命令,以便程序可以每18位数创建一个新行,如果可能的话,在前7位和后11位之间引入一个空格。然后将它们全部反转回更长的弦。
答案 0 :(得分:5)
这会将长字符串分成较短的字符串。
>>> s = '000000100000000011000000100000000010000000100000000001'
>>> print('\n'.join([s[i:i + 7] + ' ' + s[i + 7:i + 18] for i in range(0,len(s),18)]))
0000001 00000000011
0000001 00000000010
0000001 00000000001
这也将放入你提到的空间。
为了反方向,我们可以做到以下几点:
>>> f = '0000001 00000000011\n0000001 00000000010\n0000001 00000000001'
>>> print(''.join([c for c in f if c in '01']))
000000100000000011000000100000000010000000100000000001
答案 1 :(得分:1)
val = '000000100000000011000000100000000010000000100000000001'
short_val = ''
for i range(len(val) - 1):
if i % 16 == 0:
print(short_val)
short_val = ''
else:
short_val += val[i]