交换/替换字符串中的字符

时间:2021-04-13 22:11:39

标签: python replace swap

我正在尝试获取一个具有 4 个不同字符值的字符串,我想将两个字符相互交换,另外两个字符相互交换

到目前为止我已经有了这个,但我使用的替换方法是替换一路上的字符,使结果不正确。

我的代码是这样的:

s = 'ABBDCA'

# printing original lists
print("The original list is : " + str(s))
  
# Swap elements in String list
# using replace() + list comprehension
res = [sub.replace('B', 'A').replace('D', 'C').replace('A', 'B').replace('C', 'D') for sub in s]
  
# printing result 
print ("List after performing character swaps : " + str(res))

我的结果是

The original list is : ABBDCA
List after performing character swaps : ['B', 'B', 'B', 'D', 'D', 'B']

但我想要得到的结果是:

BAACDB

所以在字符串中交换 A 和 B,也交换 C 和 D。

1 个答案:

答案 0 :(得分:3)

你能明白为什么会这样吗?在用 As 替换所有 B 之后,现在有更多的 As 需要转换回 B。您需要逐个字符地执行此操作:

s = 'ABBDCA'
xlate = {'A':'B','B':'A','C':'D','D':'C'}
res = ''.join(xlate[c] for c in s)
相关问题