将子字符串列表添加到python中字符串的特定位置
Posted
技术标签:
【中文标题】将子字符串列表添加到python中字符串的特定位置【英文标题】:add list of substrings to specific positions of string in python 【发布时间】:2020-02-26 03:30:07 【问题描述】:我有一个大字符串 s 和一个坐标列表,我必须在其中放入一些字符串。
s = "Hello world this is my code"
以及职位列表:
cl = [(4,"this") , (7,"that") , (10 , "other")]
结果:
out >> Hell<this>o w<that>orl<other>d this is my code
我阅读了这个链接:Add string in a certain position in Python 并且很容易将一个字符串推入另一个字符串,但是当我多次按下时位置会发生变化。我该怎么做? 谢谢。
【问题讨论】:
【参考方案1】:你也可以使用enumerate
:
s = "Hello world this is my code"
cl = [(4,"this") , (7,"that") , (10 , "other")]
new_cl = dict(cl)
result = ''.join(a if i not in new_cl else f"<new_cl[i]>a" for i, a in enumerate(s))
输出:
'Hell<this>o w<that>orl<other>d this is my code'
【讨论】:
【参考方案2】:像这样:
s = "Hello world this is my code"
cl = [(4,"this") , (7,"that") , (10 , "other")]
i = 0
for j,w in cl:
s = s[:j+i] + w + s[j+i:]
i += len(w)
只需在每一步添加每个添加单词的长度即可。希望这会有所帮助!
【讨论】:
【参考方案3】:您可以按相反的顺序进行操作,以免影响前面项目的位置:
for pos, text in reversed(cl):
s = f's[:pos]<text>s[pos:]'
s
变为:'Hell<this>o w<that>orl<other>d this is my code'
【讨论】:
如果订单未知:sorted(cl, reverse=True)
.以上是关于将子字符串列表添加到python中字符串的特定位置的主要内容,如果未能解决你的问题,请参考以下文章