作者ajjj840569 (你爸)
看板Python
標題[問題] 如果讓無間隔的連續字 推得字典對應值?
時間Tue Nov 23 04:22:35 2021
請教各位前輩
有一字串是:’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
推 papple23g: 可以用 startswith11/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