簡體   English   中英

將字符串分成一定長度的較小字符串列表

[英]Dividing a string into a list of smaller strings of certain length

如果我有這個字符串:

"0110100001100101011011000110110001101111"

如何將每八個字符分成較小的字符串,並將其放入一個列表中,以便它看起來像這樣?:

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

到目前為止,我無法弄清楚這是怎么可能的。

我應該提一下,因為我的字符串是二進制的,所以長度總是8的倍數。

>>> mystr = "0110100001100101011011000110110001101111"
>>> [mystr[i:i+8] for i in range(0, len(mystr), 8)]
['01101000', '01100101', '01101100', '01101100', '01101111']

該解決方案使用所謂的列表理解( 似乎是一個相當不錯的教程),並且基本上與Aleph的答案相同,只是在一行中。

t=[]
for i in range(len(yourstring)/8):
    t.append(yourstring[i*8: (i+1)*8])

你也可以使用re

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM