在數據分析中,數據以臟形式傳送給我們是很常見的,其中存在與轉錄或下載方式相關的錯誤。由于我們知道DNA的任何序列都必須由四個堿基組成'a','g'因此DNA中出現't'的'c'任何其他字母一定是錯誤的。編寫一個函數clean(dna),返回一個新的 DNA 字符串,其中除 A、C、G 或 T 之外的每個字符都被替換為 N。例如,clean('goat')應返回字符串'gnat'。您可以假設 dna 全部為小寫,但不要假設任何有關錯誤字符的性質(例如,它們甚至可能被意外轉錄為數字)。clean('') → ''clean('agct7ttczttctgactgcaacgggcaatatgtctctxtgtggattaaaaaaagagtgtcygatagcagcttctgaactggttacctgcc') → 'agctnttcnttctgactgcaacgggcaatatgtctctntgtggattaaaaaaagagtgtcngatagcagcttctgaactggttacctgcc'clean('gtgagtaaattaaaattttnttgacttaggtcactaaptactttaaccaatataggbatagcgcacagacagataaaaattacagagtac') → 'gtgagtaaattaaaattttnttgacttaggtcactaantactttaaccaatataggnatagcgcacagacagataaaaattacagagtac'使用for循環
2 回答

HUH函數
TA貢獻1836條經驗 獲得超4個贊
我希望我沒有替你做功課。我看到已經使用 .sub 發布了答案,但您只要求使用循環
def clean(text):
cleaned_text=""
for i in range(0, len(text)):
if text[i] in "agtc":
cleaned_text=cleaned_text+text[i]
else:
cleaned_text=cleaned_text+"n"
return cleaned_text
print(clean("agct7ttczttctgactgcaacgggcaatatgtctctxtgtggattaaaaaaagagtgtcygatagcagcttctgaactggttacctgcc"))
# returns agctnttcnttctgactgcaacgggcaatatgtctctntgtggattaaaaaaagagtgtcngatagcagcttctgaactggttacctgcc
查看完整回答
慕課專欄
更多
添加回答
舉報
0/150
提交
取消