簡體   English   中英

使用第 n + 1 個分隔符“0”分割字符串每 n 個字符

[英]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.

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