作者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://webptt.com/cn.aspx?n=bbs/Python/M.1637612557.A.D08.html
2F:推 papple23g: 可以用 startswith11/23 13:01
谢谢二位,但是想请问如果字串中间有空格,为何用startswith会无法break?
我在字典中加入‘ ’:’ ‘ 是不可行的吗 谢谢
※ 编辑: ajjj840569 (36.232.158.125 台湾), 11/23/2021 21:27:55
4F:→ papple23g: 我的范例没有加上例外处理机制 必须确保关键字连续 空11/23 22:13
5F:→ papple23g: 白可以加进字典 但不能切到关键字 最好的方式还是自己11/23 22:13
6F:→ papple23g: 加上例外处理 11/23 22:13
有成功了,不过如果我将txt file转成list再转字串
放到这个code跑 好像会一直跑不完@@
但改成直接读txt档就可以
※ 编辑: ajjj840569 (36.232.158.125 台湾), 11/23/2021 22:29:56
7F:推 lenjoyn: 这看起来用trie 的资料结构就可以了 11/24 18:49