如何解决交换/替换字符串中的字符
我正在尝试获取一个具有 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','D','B']
但我想要得到的结果是:
BAACDB
所以在字符串中交换 A 和 B,也交换 C 和 D。
解决方法
你能明白为什么会这样吗?在用 As 替换所有 B 之后,现在有更多的 As 需要转换回 B。您需要逐个字符地执行此操作:
s = 'ABBDCA'
xlate = {'A':'B','B':'A','C':'D','D':'C'}
res = ''.join(xlate[c] for c in s)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。