一、問題
我們在做字符串替換的時候會遇到一個字符想換轉換的方法,注: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的源碼,找到了這兩個方法的使用。