有没有办法分割python字符串而不使用for循环,基本上将中间的字符串拆分为最接近的分隔符。
就像:
The cat jumped over the moon very quickly.
分隔符将是空格,结果字符串将是:
The cat jumped over
the moon very quickly.
我看到有一个count地方我可以看到有多少空格(虽然看不到如何返回它们的索引)。然后,我可以通过除以2来找到中间的一个,但是然后如何在此索引处对此分隔符进行拆分。查找已关闭,但它返回第一个索引(或使用rfind的第一个索引)而不是所有找到“”的索引。
s = "The cat jumped over the moon very quickly"
l = s.split()
s1 = ' '.join(l[:len(l)//2])
s2 = ' '.join(l[len(l)//2 :])
print(s1)
print(s2)
def split_text(text):
middle = len(text)//2
under = text.rfind(" ", 0, middle)
over = text.find(" ", middle)
if over > under and under != -1:
return (text[:,middle - under], text[middle - under,:])
else:
if over is -1:
raise ValueError("No separator found in text '{}'".format(text))
return (text[:,middle + over], text[middle + over,:])
它不使用for循环,但可能使用for循环会有更好的性能。
我通过引发错误raise ValueError()来处理整个字符串中找不到分隔符的情况,但是改变你想要处理的情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。