猿问

有没有办法读取字符串并将字符串中的每个字母转换为另一个字符串中的项目?

我有一串字母: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.

所以基本上我希望在新行上生成更改序列的字符串。


HUX布斯
浏览 132回答 3
3回答

人到中年有点甜

不要使用x.replace,它不会就地修改字符串,它会返回修改后的字符串(它会替换所有实例,而不仅仅是您要替换的实例),您可以为此使用列表切片和字符串连接:for i in range(len(x)):    for j in y:        print(x[:i] + j + x[i + 1:])输出:VBCDEWBCDEXBCDEYBCDEZBCDEAVCDEAWCDEAXCDEAYCDEAZCDEABVDEABWDEABXDEABYDEABZDEABCVEABCWEABCXEABCYEABCZEABCDVABCDWABCDXABCDYABCDZ

慕尼黑5688855

这是 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 

慕斯王

x = "ABCDE"y = "VWXYZ"for i, _ in enumerate(x):    for c in y:        print(x[:i] + c + x[i + 1 :])
随时随地看视频慕课网APP

相关分类

Python
我要回答