看板 Python 關於我們 聯絡資訊
請教各位前輩 有一字串是:’CGTGATTACG’ 假設給一字典={‘A’:’CGT’, B:’TACG’, ‘C’:’TT’, ‘D’:’GAT’} 要如何能print 出‘ADB’? 目前想法是先把字典轉成list,把字串切割排進list 如[‘C’, ‘CG’, ‘CGT’, ‘CGTG’...] 再用for loop , if 字串list[(變數1):(變數2)]==原字典list[(變數3)][1] 不過for loop的變數與迭代不知該如何設定 才不會造成判斷時字串重複? Ex: 字串第五位開始的TTACG, 會被我切成’T’, ’TT’, ‘TTA’...’TACG’ 造成判 斷到C(TT) 跟B(TACG) 結果就變成’ADCB’ 應該如何解決呢? 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.154.245 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1637612557.A.D08.html
cuteSquirrel: https://onlinegdb.com/GtiSkHWrz 參考看看11/23 05:40
papple23g: 可以用 startswith11/23 13:01
papple23g: https://i.imgur.com/iQX43xL.png11/23 13:01
謝謝二位,但是想請問如果字串中間有空格,為何用startswith會無法break? 我在字典中加入‘ ’:’ ‘ 是不可行的嗎 謝謝 ※ 編輯: ajjj840569 (36.232.158.125 臺灣), 11/23/2021 21:27:55
papple23g: 我的範例沒有加上例外處理機制 必須確保關鍵字連續 空11/23 22:13
papple23g: 白可以加進字典 但不能切到關鍵字 最好的方式還是自己11/23 22:13
papple23g: 加上例外處理 11/23 22:13
有成功了,不過如果我將txt file轉成list再轉字串 放到這個code跑 好像會一直跑不完@@ 但改成直接讀txt檔就可以 ※ 編輯: ajjj840569 (36.232.158.125 臺灣), 11/23/2021 22:29:56
lenjoyn: 這看起來用trie 的資料結構就可以了 11/24 18:49