【发布时间】:2020-04-20 01:37:37
【问题描述】:
我正在尝试使用 python 在某个点拆分字符串
我想做的如下:
假设我们有一个字符串
str = "123456789123456789"
我想将此字符串分解为每个部分的长度为5 或更短的部分(最后一部分)
所以上面字符串的输出应该是这样的:
l: 12345
r: 67891
l: 23456
r: 789
这是我正在尝试执行的代码:
errormsg = "123456789123456789"
if len(errormsg) > 5 :
print("yes")
splitat = 5
str = errormsg
l, r = str[:splitat], str[splitat:]
print("l: " + l)
print("r: " + r)
while len(r) > 5:
# print("hi")
str = r
splitat = 5
l, r = str[:splitat], str[splitat:]
print("l: " + l)
print("r: " + r)
但它给出了一个像这样的奇怪输出:
yes
l: 12345
r: 6789123456789
l: 67891
r: 23456789
l: 23456
r: 789
谁能告诉我如何解决这个问题?
【问题讨论】:
-
你没有说你想要的输出是什么?所以很难说如何解决它。您得到的输出是因为您在拆分后继续打印 l 和 r 值,但您从不存储这些
-
这能回答你的问题吗? Split string every nth character?
-
原因是你给
r的切片没有结束位置,所以它包含了字符串的其余部分 -
errormsg = "123456789123456789" 如果 len(errormsg) > 5 : print("yes") splitat = 5 str = errormsg l, r = str[:splitat], str[splitat:splitat*2 ] print("l:" + l) print("r:" + r) while len(str) > 5: # print("hi") splitat = 5 l, r = str[:splitat], str[splitat :splitat*2] str = str[splitat*2:splitat*3] print("l:" + l) print("r:" + r)
标签: python