我有一串字母:x = "ABCDE"我有一个包含另一组字母的字符串: y = "VWXYZ"我一直试图解决的想法是获取原始字符串 x,并将第二个字符串 y 中第一个字母(“V”)的所有实例读取到 x 的第一个位置。然后用所有字母 y 对 x 的所有位置重复此操作。尝试了几个不同的循环,但很难做到这一点。for i in range(len(x)): print (x[i]) replaced = False for z in range(len(y)): x.replace(x[0],y[0])输入字符串:x = "ABCDE"y = "VWXYZ"理想情况下,结果将在新行上打印每个序列。期望的结果:"ABCDE" # starting sequence"VBCDE" # replace first position in x with first position in y"WBCDE" # replace first position in x with second position in y"XBCDE" # replace first position in x with third position in y"YBCDE" "ZBCDE" # replace first position in x with fifth position in y"AVCDE" # replace second position in x with first position in y"AWCDE" # replace second position in x with second position in y......."ABCDZ" # This would be the final sequence in the series.所以基本上我希望在新行上生成更改序列的字符串。
3 回答

人到中年有点甜
TA贡献1895条经验 获得超7个赞
不要使用x.replace,它不会就地修改字符串,它会返回修改后的字符串(它会替换所有实例,而不仅仅是您要替换的实例),您可以为此使用列表切片和字符串连接:
for i in range(len(x)):
for j in y:
print(x[:i] + j + x[i + 1:])
输出:
VBCDE
WBCDE
XBCDE
YBCDE
ZBCDE
AVCDE
AWCDE
AXCDE
AYCDE
AZCDE
ABVDE
ABWDE
ABXDE
ABYDE
ABZDE
ABCVE
ABCWE
ABCXE
ABCYE
ABCZE
ABCDV
ABCDW
ABCDX
ABCDY
ABCDZ

慕尼黑5688855
TA贡献1848条经验 获得超2个赞
这是 x.replace ... 的解决方案。
x = "ABCDE"
y = "VWXYZ"
for i in range(0, len(x)):
for j in range(0, len(y)):
print(x.replace(x[i],y[j]))
print("Original: " + x) # x is still same

慕斯王
TA贡献1864条经验 获得超2个赞
x = "ABCDE"
y = "VWXYZ"
for i, _ in enumerate(x):
for c in y:
print(x[:i] + c + x[i + 1 :])
添加回答
举报
0/150
提交
取消