python: 用循环将字符串分割成子字符串
我有一个这样的字符串:
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]
这里面第三个参数是 range
的 step
值,也就是范围内元素之间的差值。
补充:刚刚重新读了你的问题,意识到我不太确定你是想在单词边界处换行,还是想在每行的第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