[英]split-string-every-nth-character with nth+1 separator '0'
我有一系列数字是字符串,例如: IN: '01110100001101001001110100'
我想拆分如下: OUT: ['01110100', '0', '01101001', '0','01110100]
我们可以注意到第九个“0”是二进制数字列表的分隔符。
否则说:前八位,分隔符'0',下一个高度,分隔符'0',下一个高度,分隔符'0'等
我知道如何使用第 n 个元素进行拆分( 每个第 n 个字符拆分字符串? ),但这里的问题有点复杂:有一个分隔符 '0'
非常感谢你的帮助。
最亲切的问候
您只想在获取长度为 8 的切片和长度为 1 的切片之间交替,对吗?
def get_slices(string):
from itertools import islice, cycle
string_iter = iter(string)
for slice_len in cycle([8, 1]):
slc = "".join(islice(string_iter, slice_len))
if not slc:
break
yield slc
print(list(get_slices("abcdefghijklmnopqr")))
Output:
['abcdefgh', 'i', 'jklmnopq', 'r']
您可以将正则表达式与捕获组一起使用。
import re
instr = '01110100001101001001110100'
outlist = list(sum(re.findall(r'(\d{8})(\d)', instr), ()))
print(outlist)
re.findall()
返回一个元组列表, list(sum(..., ())
将其展平为一个列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.