python中查詢字串
阿新 • • 發佈:2022-03-21
1、測試1
>>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg' ## 定義測試字串 >>> type(seq) <class 'str'>=
使用find查詢:
>>> seq.find('ATG') ## 返回查詢字串的第一個索引 0 >>> seq.find('GTG') ## 同上 2 >>> seq.find('XTG') ## 當沒有匹配的字串時, 返回-1 -1 >>>
2、當有多個匹配的字串時,返回每一個字串的索引
>>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg' ## 定義一個測試字串 >>> seq 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg' >>> type(seq) <class 'str'> >>> def find_all(string, sub): ## 定義查詢函式, 兩個引數,一個是總字串, 一個是要查詢的字串 start = 0 ## 定義查詢的起始位置pos = [] ## 定義空列表 while True: ## 設定迴圈條件 start = string.find(sub, start) ## 根據查詢結果調整查詢的起始位置 if start == -1: ## 設定迴圈終止條件,即沒有匹配字串時, 迴圈終止 return pos ## 返回所有的查詢結果 pos.append(start) ## 將每次查詢到的字串的起始索引新增至pos列表start += len(sub) ## 當查詢到字元時, 查詢起始位置向後移動被字串長度個單位 >>> find_all(seq, 'XXX') ## 未匹配字串情況 [] >>> find_all(seq, 'ATG') ## 一共查詢到兩個字串, 索引分別為0, 18 [0, 18]
來源:https://mp.weixin.qq.com/s?__biz=MzkyMTI1MTYxNA==&mid=2247496936&idx=1&sn=63eb0ed21f13af872ea7021b6b8b5b06&chksm=c184ce99f6f3478f07f4686abe3c8a82e7b7a1cc4d008c4bd49344f0759e9898bce06981c9fe&mpshare=1&scene=23&srcid=0319SfRKP46AoERwV8KNQ0te&sharer_sharetime=1647704088167&sharer_shareid=4ed060cc4cd1efce40e3ab6dd8d8c7d4#rd