如何在每 8 个字符的字符串中插入一个子字符串并在 Python 中继续?
How to insert a substring in a string ever 8 characters and continue on in Python?
已编辑:我现在看到它每 3-4 个字母中断一次,因为它正在计算逗号。我如何让它忽略逗号?
我有一串字母,每 8 个字母我想插入一个 8 个零的子串。因此,如果我的字符串输入是 'H,e,l,l,o,W,o,r,l,d',我希望我的输出看起来像 '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。
已编辑:我现在看到它每 3-4 个字母中断一次,因为它正在计算逗号。我如何让它忽略逗号?
我有一串字母,每 8 个字母我想插入一个 8 个零的子串。因此,如果我的字符串输入是 'H,e,l,l,o,W,o,r,l,d',我希望我的输出看起来像 '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。