1. 程式人生 > 其它 >python中查詢字串

python中查詢字串

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