gpt4 book ai didi

python - 按索引 'at same time' 插入多个 python 子字符串

转载 作者:行者123 更新时间:2023-12-05 04:06:41 25 4
gpt4 key购买 nike

假设我有一个字符串

a = 'The dog in the street.' (so len(a)=8).
01234567 (just adding indices for extra illustration)

现在我想更改该字符串以在任意位置包含一些任意单词,例如,来自(任意大小的)字典:

d = {
'w1': {'begin':'0', 'end':'3', 'w':'BIG'}
'w2': {'being':'4', 'end':'7', 'w':'BARKED
}

其中 wx 包含有关要插入的单词的信息,字段含义:

  • 是:我们要在之后(包括)插入的单词的起始索引

  • end:我们要在之后插入的单词的结束索引(不包括)

  • w:要插入的词

所以将 dict d“应用”到字符串 a,我们会得到:

a = 'TheBIGdogBARKEDin the street.'
0123456789...

请注意,虽然我在这里对字典值进行了排序,以便要插入的单词按从左到右的顺序排列,但情况并非总是如此。

我最初试图用类似的东西来做到这一点:

for word in d:
insertion_loc = word['end']
a = "{}{}{}".format(a[:insertion_loc], word['w'], a[insertion_loc:])

但是这样做时,每次迭代都会更改字符串的总长度,因此开始和结束索引不再适用于要插入字符串的字典中的下一个单词。立即想到的唯一其他方法是根据先前插入的子串长度计算新的插入偏移量,以及要插入的当前字符串是在先前插入的子串位置之前还是之后插入(这样看起来会有点难看)。

还有其他方法吗?谢谢。

最佳答案

你可以从末尾往前插入,这样你就不必考虑递增的索引

关于python - 按索引 'at same time' 插入多个 python 子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49604321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com