為什麼這篇python str取代鄉民發文收入到精華區:因為在python str取代這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者iyaicharles (0.0)看板Python標題Re: [問題] 比較並取代字串的文字時間...
※ 引述《eric2853 (eric)》之銘言:
: 大家好
: 我是一個剛學python沒多久的初學者
: 因為本身是生物相關背景 所以未來想利用python做一些比較跟計算
: 例如我想要比較兩個DNA序列中 有哪些不一樣的地方
: 若是序列相同 則將他取代成"."
: 例如
: a = "atcgatcgaaa"
: b = "atccagcgaac"
: 則print出 兩段序列
: "...g.t....a"
: "...c.g....c"
: 以下是我的練習code:
: a = "atcgatcgaaa"
: b = "atccagcgaac"
這邊for的用法有問題 python迴圈可以用集合的概念來想
for [element] in [set]:
#....
碰到不熟的語言 你可以用print去確認你的code到底發生了什麼事
for i in a[i]:
print (i) # print element in set a[i]
: for i in a[i]: #利用元素位置去找
你似乎不太清楚i變數到底代表什麼
: if a[i] == b[i]: # 你在這邊把i當成數字
: c = a.replace(i,".") # 你在這邊把i當char
: d = b.replace(i,".")
另外我不建議你使用replace,他會取代複數個字
: print(c,d)
: 可是都會出現錯誤代碼 string indices must be integers
: 我其實看不太懂他想表達的意思
: 請問各位前輩我該如何改我的code
: 非常謝謝大家
最後附上弱弱的code
a = "atcgatcgaaa"
b = "atccagcgaac"
a_list = list(a) # List是python很基礎的結構 建議熟悉它
b_list = list(b) # 轉成List是因為list才能作assign的操作 (a_list[i] = '.')
for i in range(len(a)): # 在這邊我把i當數字,請注意a長度必需與b相等
if a_list[i] == b_list[i]:
a_list[i] = '.'
b_list[i] = '.'
a = "".join(a_list) # 將list轉回string
b = "".join(b_list)
print(a)
print(b)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.178.157
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1457457862.A.260.html