python - 在分隔符处拆分python字符串,但在特定的分隔符处
问题描述
有没有一种方法可以在不使用 for 循环的情况下拆分 python 字符串,该循环基本上将中间的字符串拆分到最近的分隔符。
像:
The cat jumped over the moon very quickly.
分隔符是空格,结果字符串是:
The cat jumped over
the moon very quickly.
我看到有一个count
地方我可以看到那里有多少个空格(虽然看不到如何返回它们的索引)。然后我可以通过除以 2 来找到中间的那个,但是然后如何在这个索引处的这个分隔符上说拆分。Find 很接近,但它返回第一个索引(或使用 rfind 的右第一个索引)而不是找到“”的所有索引。我可能想多了。
解决方案
这应该有效:
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()
为您想要处理该情况的任何方式。
推荐阅读
- puppeteer - 没有“下一页”按钮但有一堆“页码”页面时的分页
- c++ - 窗口因未知原因抛出内存异常,gtkmm 和 c++
- twitter-bootstrap - Bootstrap 5 导航栏不使用空格渲染
- python - keras 如何替换 load_data() 方法
- javascript - 是官方的。history.push 不呈现新组件
- javascript - onblur 功能对我不起作用-可能是我的编码
- python - 如何在 django 中手动验证和登录用户?
- kubernetes - 将动态命令注入部署
- javascript - 浏览器化不工作。给出未定义的 process.versions.node
- macros - Scheme 的语法规则——在 `...` 中混合不同的语法选择