一、问题
我们在做字符串替换的时候会遇到一个字符想换转换的方法,注:string类型是一个不可变的类型,因为我们不能够直接修改。
"""
替换规则:
ATGC-->TACG
"""
上述的问题也比较简单,可以使用的方法就是构建一个dict的映射关系,然后使用循环和join即可
二、解决
除了上述的方法,我在str中看到了这两个方法,记录一下后面翻看blog的时候可以想起来。
# 映射表的构建:str.maketrans
# 如果出现多个对一个那么结果保留最后一个
# 原因如下:
# 映射表的结果是一个dict类型,因此键值只有一次,所以多个出现只会保留最后一个
"""
output:
映射表:{84: 65, 67: 71, 65: 66, 71: 75, 36: 64}
"""
table_reflect = str.maketrans("TCAG$", "AGBK@")
# 替换:translate
"""
注意:由于映射关系是字典存在,因此如果只有A-->B的关系,那么B-->A的关系就会为空,就不替换结果
output:
替换结果:BAAKKG@
"""
str_hz = "ATTGGC$"
result = str_hz.translate(table_reflect)
三、总结
方法也比较简单,根据网上的提示,然后自己又查看了一下str的源码,找到了这两个方法的使用。