簡體   English   中英

如何在每 8 個字符的字符串中插入 substring 並在 Python 中繼續?

[英]How to insert a substring in a string ever 8 characters and continue on in Python?

編輯:我現在看到它每 3-4 個字母就中斷一次,因為它正在計算逗號。 我如何也讓它忽略逗號?

我有一串字母,每 8 個字母我想插入一個 8 個零的 substring。 所以如果我的字符串輸入是'H,e,l,l,o,W,o,r,l,d',我希望我的 output 看起來像'H,e,l,l,o,W,o, r,0,0,0,0,0,0,0,0,l,d'。 這是我到目前為止所擁有的,但在我迭代 3-4 個字母后,我發現它會崩潰。

x = 'H,e,l,l,o,W,o,r,l,d,I,t,I,s,A,G,o,o,d,D,a,y' 
count = 0
for ele in x:
    if count == 8:
        x = x[:count] + ',0,0,0,0,0,0,0,0,' + x[count:]
        count = 0
    else:
        count += 1

由於每個字符后面都有一個逗號,因此在您的示例中,您實際上在 16 個字符后插入了零。 一個簡單的方法是:

distance = 16
insertion = '0,' * 8
x = 'H,e,l,l,o,W,o,r,l,d,I,t,I,s,A,G,o,o,d,D,a,y' 

parts = [x[i:i+distance] for i in range(0, len(x), distance)]
result = insertion.join(parts)

結果將是: 'H,e,l,l,o,W,o,r,0,0,0,0,0,0,0,0,l,d,I,t,I,s,A,G,0,0,0,0,0,0,0,0,o,o,d,D,a,y'

還有一個簡短的警告:在您的示例代碼中,您循環遍歷 x 的元素,但在循環中,您修改了 x。 您永遠不應該修改您正在循環的變量(可迭代)。 相反,如果您想遵循您的方法,您應該創建一個新變量作為空字符串y = '' ,然后將 for 循環中的新字符串連接到 y。 最后,您可以用 y 覆蓋 x。

暫無
暫無

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

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