如果 我有这个字符串:
"0110100001100101011011000110110001101111"
如何将每八个字符分成较小的字符串,并将其放入一个列表中,以便它看起来像这样?:
['01101000','01100101','01101100','01101100','01101111']
到目前为止,我无法弄清楚这是怎么可能的。
我应该提一下,因为我的字符串是二进制的,所以长度总是8的倍数。
答案 0 :(得分:8)
>>> mystr = "0110100001100101011011000110110001101111"
>>> [mystr[i:i+8] for i in range(0, len(mystr), 8)]
['01101000', '01100101', '01101100', '01101100', '01101111']
解决方案使用所谓的列表理解(this似乎是一个相当不错的教程),并且基本上与Aleph的答案基本相同,只是在一行中。
答案 1 :(得分:3)
t=[]
for i in range(len(yourstring)/8):
t.append(yourstring[i*8: (i+1)*8])
答案 2 :(得分:3)
您也可以使用重新
import re
In [21]: s="0110100001100101011011000110110001101111"
In [22]: re.findall('.{8}',s)
Out[22]: ['01101000', '01100101', '01101100', '01101100', '01101111']
由于您的字符串只包含数字,我们可以使用.
来匹配任何字符。
您还可以明确使用匹配8位数字的\d{8}
。
In [23]: In [22]: re.findall('\d{8}',s)
Out[23]: ['01101000', '01100101', '01101100', '01101100', '01101111']