一、问题
我们在做字符串替换的时候会遇到一个字符想换转换的方法,注: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的源码,找到了这两个方法的使用。