用另一个字符串的字符替换一个字符串中的空格
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'
假设我有两个字符串,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'