首页 / PYTHON / Python-将文字换行
Python-将文字换行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-将文字换行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1677字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试编写一个函数,该函数需要一些文本和一个列表,然后,如果列表中的最后一个元素足够小,以至于它可以将文本追加到该最后一个元素中并且仍然少于10个字符,则执行此操作.否则,请将其单独添加到列表中.我遇到的问题是,例如,文本长度为25个字符.
例如,
l = ["12345678", "123456789"]
>>> a("a", l)
["12345678", "123456789a"]
>>> a("123456789123456789123", l)
["12345678", "1234567891", "2345678912", "3456789123"]
这就是我到目前为止
def a(st, lst):
last = 10 - len(lst[-1])
if last < len(st):
lst[-1] += st[:last]
lst.append(st[last:])
else:
lst[-1] += st
解决方法:
问题是st(在给定函数中)可以任意长,因此您必须添加任意数量的元素.现在,万一某些东西是任意的,通常会调用一个循环(for或while).
该算法本身包括两个阶段:在第一阶段,我们检查lst的最后一个元素还剩下多少空间.我们用st.(的一部分)填充该元素.您可以执行以下操作:
left = 10-len(lst[-1])
lst[-1] += st[:left]
请注意,这里不需要if:如果没有空格,它将不添加任何字符,此外,如果st中的字符太少,则切片将仅返回一个子字符串.
现在,我们只需要将其余字符以10的块添加到lst.为此,我们可以编写一个for循环,该循环从左侧开始(因为我们可以省略第一个左字符),并跳转10个位置,直到到达字符串末尾为止:
for i in range(left,len(st),10):
# ... do something
pass
很明显,我们要做的是:将切片st [i:i 10]添加到第一个.因此,我们将for循环转换为:
for i in range(left,len(st),10):
lst.append(st[i:i+10])
最后我们只需要返回第一个.放在一起,我们得到:
def a(st, lst):
# phase 1
left = 10-len(lst[-1])
lst[-1] += st[:left]
#phase 2
for i in range(left,len(st),10):
lst.append(st[i:i+10])
return lst
请注意,此解决方案在给定列表上运行.如果要复制,可以添加一行:
def a(st, lst):
# make copy
lst = list(lst)
# phase 1
left = 10-len(lst[-1])
lst[-1] += st[:left]
#phase 2
for i in range(left,len(st),10):
lst.append(st[i:i+10])
return lst
内容总结
以上是互联网集市为您收集整理的Python-将文字换行全部内容,希望文章能够帮你解决Python-将文字换行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。