→ clsmbstu: [i for i in range(len(string)) if string[i] == "A"] 06/22 14:32
→ clsmbstu: 我只想到這樣 06/22 14:32
→ eco100: 所以真的要用迴圈的意思嗎? 06/22 14:38
→ clsmbstu: 我個人覺得Python是滿依賴迴圈的... 06/22 14:39
→ clsmbstu: 我也剛學,看看別人的意見吧 06/22 14:40
→ hsnuyi: 寫code看的原來不是complexity或是易讀性 而是有沒有函數 06/22 14:46
→ hsnuyi: 可用 06/22 14:46
推 ckc1ark: map(lambda x:x.start(), re.finditer('A', 'AFBF....')) 06/22 14:49
→ ckc1ark: 牛刀來了 06/22 14:49
→ clsmbstu: 我是從R過來的使用者 坦白說我是覺得有函數可用的狀況下 06/22 14:51
→ clsmbstu: complexity還有易讀性都好多了...... 06/22 14:52
→ clsmbstu: In R: gregexpr("A", string)[[1]] 解決 06/22 14:53
→ clsmbstu: 所以我滿理解這篇原PO的疑問 hsnuyi不需要這樣吧 = = 06/22 14:54
→ hsnuyi: 看來上面用regex的方法比loop 好懂 嗯嗯 06/22 14:55
→ eco100: 不好意思 我也是初學者 只是想知道是不是有漏掉什麼函數 06/22 14:56
→ eco100: 可以直接處理我遇到的問題 06/22 14:56
→ ckc1ark: 看這點閱數我就相信沒有可以直接處理的函數了 06/22 15:01
→ ckc1ark: 當然也有可能有library會實作 06/22 15:02
→ eco100: 感謝兩位c大提供的資訊 06/22 15:07
推 brad0315: str.find('A',2) 可以多一個控制項 06/22 15:15
→ brad0315: 如果你知道有幾個,那就好辦了 06/22 15:16
→ eco100: 有啊 str.count就可以知道了 06/22 15:19
推 TuCH: [x.start() for x in re.finditer('A', 'AFBF....')] 06/22 15:29
→ eco100: 剛google到 import more_itertools as mit 06/22 15:29
→ eco100: list(mit.locate(str, lambda x: x == "A")) 也可以 06/22 15:30
→ adrianshum: 真的只要找單字元嗎?還是要找substring?前者已經有 06/23 07:35
→ adrianshum: 很多方法了。後者用str.find 可以提供starting index, 06/23 07:35
→ adrianshum: 或是re.match 再用MatchObject 的start(group) 06/23 07:35
→ adrianshum: Oops 沒留意已經有re.finditer 06/23 07:36
→ eco100: 欸 樓上說到重點了 下一步真的要找substring XD 06/23 09:02