编辑:我现在看到它每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发布于 2020-12-15 00:17:25
因为您在每个字符后面都有一个逗号,所以在您的示例中,您实际上在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。你永远不应该修改你正在循环的变量(iterable)。相反,如果您想遵循您的方法,您应该创建一个新变量作为一个空字符串y = '',然后将for循环中的新字符串连接到y。最后,您可以用y覆盖x。
https://stackoverflow.com/questions/65292327
复制相似问题