Python 用列表中的项目替换子字符串的多个实例

Python 用列表中的项目替换子字符串的多个实例,python,arrays,string,list,replace,Python,Arrays,String,List,Replace,我有一个字符串,如下所示: e = "how are you how do you how are they how" 我的预期产出是: out = "how1 are you how2 do you how3 are they how4" 我正在尝试以下方法: def givs(y,x): tt = [] va = [i+1 for i in list(range(y.count(x)))] for i in va: tt.append(x+str(

我有一个字符串,如下所示:

e = "how are you how do you how are they how"
我的预期产出是:

out = "how1 are you how2 do you how3 are they how4"
我正在尝试以下方法:

def givs(y,x):
    tt = []
    va = [i+1 for i in list(range(y.count(x)))]
    for i in va:
        tt.append(x+str(i))
    return tt

ls = givs(e, 'how')

ls = ['how1', 'how2', 'how3', 'how4']

fg = []
for i in e.split(' '):
    fg.append(i)

fg = ['how', 'are', 'you', 'how', 'do', 'you', 'how', 'are', 'they', 'how']
对于“fg”中的每个“how”实例,我想用“ls”中的项替换,最后使用join函数来获得所需的输出

expected_output = ['how1', 'are', 'you', 'how2', 'do', 'you', 'how3', 'are', 
                  'they', 'how4']
以便我可以通过以下方式加入项目:

' '.join(expected_output)
要获得:

out = "how1 are you how2 do you how3 are they how4"
您可以使用:

输出

how1 are you how2 do you how3 are they how4

不需要使代码复杂,只需添加一个计数器并将其添加到每个“how”中即可。最后制作新的字符串

e = "how are you how do you how are they how"
e_ok = ""
count = 1
for i in e.split():
    if i == "how":
        i = i+str(count)
        count += 1
    e_ok += i + " "
print(e_ok)

欢迎来到堆栈溢出。谢谢你的回答。虽然本准则可以回答该问题,但提供关于本准则为什么和/或如何回答该问题的附加上下文可提高其长期价值。当做
e = "how are you how do you how are they how"
e_ok = ""
count = 1
for i in e.split():
    if i == "how":
        i = i+str(count)
        count += 1
    e_ok += i + " "
print(e_ok)