python: 用循环将字符串分割成子字符串

3 投票
3 回答
795 浏览
提问于 2025-04-16 05:10

我有一个这样的字符串:

row='saint george 1739 1799 violin concerti g 029 039 050 symphonie concertante for two violins g 024 bertrand cervera in 024 039 christophe guiot in 024 029 and thibault vieux violin soloists orchestre les archets de paris'

我有这个循环:

for n in range (1,int(len(row)/55)+1):
print row[(n-1)*55:n*55]

它运行得很好!!

不过,它把空格给剪掉了:

saint george 1739 1799 violin concerti g 029 039 050 sy
mphonie concertante for two violins g 024 bertrand cerv
era in 024 039 christophe guiot in 024 029 and thibault

我不想让它剪掉空格(不过我还是希望每行最多55个字符)

3 个回答

1

我觉得最简单明了的方法是

for i in range(0, len(row), 55):
    print test[i:i+55]

这里面第三个参数是 rangestep 值,也就是范围内元素之间的差值。

补充:刚刚重新读了你的问题,意识到我不太确定你是想在单词边界处换行,还是想在每行的第55个字符处强制换行。

如果你想在单词边界处换行,可以看看 textwrap 模块,正如 unutbu 和 SilentGhost 提到的那样。

3

可以看看这个textwrap模块。

4

这段内容是关于编程的讨论,主要涉及一些技术问题和解决方案。虽然具体问题没有给出,但可以想象这是一个程序员在寻求帮助,想要解决他们在编写代码时遇到的困难。

在编程的世界里,常常会遇到各种各样的问题,比如代码运行不起来、出现错误信息,或者是某个功能没有按预期工作。这些都是很正常的事情,很多程序员都会经历。

为了帮助解决这些问题,程序员们会在像StackOverflow这样的论坛上提问,分享他们的代码和遇到的错误,寻求其他人的建议和解决方案。其他有经验的程序员会根据他们的描述,提供一些可能的解决办法,或者指出代码中的问题。

总之,这段内容反映了编程过程中常见的求助和交流的场景,强调了社区支持在解决技术问题中的重要性。

import textwrap

row='saint george 1739 1799 violin concerti g 029 039 050 symphonie concertante for two violins g 024 bertrand cervera in 024 039 christophe guiot in 024 029 and thibault vieux violin soloists orchestre les archets de paris'

print(textwrap.fill(row,width=55))
# saint george 1739 1799 violin concerti g 029 039 050
# symphonie concertante for two violins g 024 bertrand
# cervera in 024 039 christophe guiot in 024 029 and
# thibault vieux violin soloists orchestre les archets de
# paris

撰写回答