将字符串分成一定长度的较小字符串列表

时间:2014-06-17 15:27:03

标签: python string python-2.7

如果 我有这个字符串:

"0110100001100101011011000110110001101111"

如何将每八个字符分成较小的字符串,并将其放入一个列表中,以便它看起来像这样?:

['01101000','01100101','01101100','01101100','01101111']

到目前为止,我无法弄清楚这是怎么可能的。

我应该提一下,因为我的字符串是二进制的,所以长度总是8的倍数。

3 个答案:

答案 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']