作者eco100 ( )
看板Python
标题[问题] 寻找字串里面关键字的所有下标
时间Fri Jun 22 14:23:11 2018
例如 有一个字串str = 'AFBFDSAGDADEA'
我想知道A在这个字串的所有位置
有什麽函数可以用吗
因为google了一下
有找到 str.find 跟str.rfind
但是这两个只能找出最大跟最小的下标
但我是要全部的
该不会要用回圈了?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.32.9
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1529648593.A.CE4.html
1F:→ clsmbstu: [i for i in range(len(string)) if string[i] == "A"] 06/22 14:32
2F:→ clsmbstu: 我只想到这样 06/22 14:32
3F:→ eco100: 所以真的要用回圈的意思吗? 06/22 14:38
4F:→ clsmbstu: 我个人觉得Python是满依赖回圈的... 06/22 14:39
5F:→ clsmbstu: 我也刚学,看看别人的意见吧 06/22 14:40
6F:→ hsnuyi: 写code看的原来不是complexity或是易读性 而是有没有函数 06/22 14:46
7F:→ hsnuyi: 可用 06/22 14:46
8F:推 ckc1ark: map(lambda x:x.start(), re.finditer('A', 'AFBF....')) 06/22 14:49
9F:→ ckc1ark: 牛刀来了 06/22 14:49
10F:→ clsmbstu: 我是从R过来的使用者 坦白说我是觉得有函数可用的状况下 06/22 14:51
11F:→ clsmbstu: complexity还有易读性都好多了...... 06/22 14:52
12F:→ clsmbstu: In R: gregexpr("A", string)[[1]] 解决 06/22 14:53
13F:→ clsmbstu: 所以我满理解这篇原PO的疑问 hsnuyi不需要这样吧 = = 06/22 14:54
14F:→ hsnuyi: 看来上面用regex的方法比loop 好懂 嗯嗯 06/22 14:55
15F:→ eco100: 不好意思 我也是初学者 只是想知道是不是有漏掉什麽函数 06/22 14:56
16F:→ eco100: 可以直接处理我遇到的问题 06/22 14:56
19F:→ ckc1ark: 看这点阅数我就相信没有可以直接处理的函数了 06/22 15:01
20F:→ ckc1ark: 当然也有可能有library会实作 06/22 15:02
21F:→ eco100: 感谢两位c大提供的资讯 06/22 15:07
22F:推 brad0315: str.find('A',2) 可以多一个控制项 06/22 15:15
23F:→ brad0315: 如果你知道有几个,那就好办了 06/22 15:16
24F:→ eco100: 有啊 str.count就可以知道了 06/22 15:19
25F:推 TuCH: [x.start() for x in re.finditer('A', 'AFBF....')] 06/22 15:29
26F:→ eco100: 刚google到 import more_itertools as mit 06/22 15:29
27F:→ eco100: list(mit.locate(str, lambda x: x == "A")) 也可以 06/22 15:30
28F:→ adrianshum: 真的只要找单字元吗?还是要找substring?前者已经有 06/23 07:35
29F:→ adrianshum: 很多方法了。後者用str.find 可以提供starting index, 06/23 07:35
30F:→ adrianshum: 或是re.match 再用MatchObject 的start(group) 06/23 07:35
31F:→ adrianshum: Oops 没留意已经有re.finditer 06/23 07:36
32F:→ eco100: 欸 楼上说到重点了 下一步真的要找substring XD 06/23 09:02