[問題] ValueError: substring not found

作者: PHONm (USA~USA)   2016-07-05 12:13:44
我想要把所有'a'的index找出,我知道有正規畫表示法,
但在自己在試寫的時候出現了下面問題,請幫忙解惑,感謝大家!
x = 'An apple a day, keeps the doctor away'
i= 0
j = []
while x.index('a',i) is not None:
i = x.index('a',i) + 1
j.append(x.index('a',i))
print(j) #如果這邊往左移,不放在while迴圈內則會不顯示j序列,不知道為什麼@@!
作者: mikapauli (桜花)   2016-07-05 12:55:00
help(str.index) 看一下吧
作者: marksmanz   2016-07-05 13:04:00
j = [ idx for idx, c in enumerate(x, start = 1) if c == 'a']
作者: PHONm (USA~USA)   2016-07-05 13:18:00
感謝一樓! 看完解釋突然懂了 因為最後找不到值後會引起error,我以為只是回傳None而已@@! 感謝用二樓提供的以解決,感謝!
作者: Yshuan (倚絃)   2016-07-05 15:32:00
我會選擇enumerate再filter ...
作者: uranusjr (←這人是超級笨蛋)   2016-07-05 16:37:00
其實你原本的程式改用 find 然後改 != -1 就可以了...文件要好好讀啊 http://bit.ly/29sYuoJ
作者: bigpigbigpig (To littlepig with love)   2016-07-05 20:25:00
https://ideone.com/8ztbrs,find 比 index 溫和些

Links booklink

Contact Us: admin [ a t ] ucptt.com