gpt4 book ai didi

python - 将二进制字符串分解为多个段

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:03 25 4
gpt4 key购买 nike

这里的任务是将一个字符串110011110110000分解成一个列表:

['11', '00', '1111', '0', '11', '0000']

我的解决方案是

str1='110011110110000'
seg = []
a0=str1[0]
seg0=''
for a in str1:
print('a=',a)
if a==a0:
seg0=seg0+a
else:
print('seg0=',seg0)
seg.append(seg0)
seg0=a
a0=a
seg.append(seg0)
seg

这很丑陋,我相信你们那里的人有一个单线的。也许正则表达式?

最佳答案

您可以使用 itertools.groupby ( doc ):

str1='110011110110000'

from itertools import groupby

l = [v * len([*g]) for v, g in groupby(str1)]

print(l)

打印:

['11', '00', '1111', '0', '11', '0000']

编辑:带正则表达式的版本:

str1='110011110110000'
import re
print([g[0] for g in re.findall(r'((\d)\2*)', str1)])

关于python - 将二进制字符串分解为多个段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56897302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com