用另一个字符串的字符替换一个字符串中的空格

Replacing spaces in one string with characters of other string

假设我有两个字符串,string1="A B C " 和 string2="abc"。如何组合这两个字符串,使 string1 变成“AaBbCc”?所以基本上我希望 string1 中的所有空格都被 string2 中的字符替换。我试过像这样使用两个 for 循环:

string1="A B C "
string2="abc"

for char1 in string1:
    if char1==" ":
        for char2 in string2:
            string1.replace(char1,char2)
    else:
        pass
print(string1)

但这不起作用。我是 Python 的新手,有人可以帮助我吗?我使用版本 Python3。提前谢谢你。

string1 = "A B C "
string2 = "abc"

out, repl = '', list(string2)
for s in string1:
    out += s if s != " " else repl.pop(0)

print(out) #AaBbCc

您可以在 String2 上使用 iter,并在 String2 中将 ' ' 替换为 char,如下所示:

>>> string1 = "A B C "
>>> string2 = "abc"
>>> itrStr2 = iter(string2)
>>> ''.join(st if st!=' ' else next(itrStr2) for st in string1)
'AaBbCc'

如果两个 String 中的 len 可能不同,您可以像下面这样使用 itertools.cycle

>>> from itertools import cycle
>>> string1 = "A B C A B C "
>>> string2 = "abc"
>>> itrStr2 = cycle(string2)
>>> ''.join(st if st!=' ' else next(itrStr2) for st in string1)
'AaBbCcAaBbCc'