重複の可能性:
Python で部分文字列をすべて検索する
数字の文字列があり、特定の数字の文字列が文字列に現れるたびに見つけようとしています。
たとえば、使用するかどうかはわかってnumString.find(str)
います。最初に発生したときに教えてくれます。最初だけでなく、その str が発生するたびに見つけるためにこのステートメントを変更する方法はありますか?
重複の可能性:
Python で部分文字列をすべて検索する
数字の文字列があり、特定の数字の文字列が文字列に現れるたびに見つけようとしています。
たとえば、使用するかどうかはわかってnumString.find(str)
います。最初に発生したときに教えてくれます。最初だけでなく、その str が発生するたびに見つけるためにこのステートメントを変更する方法はありますか?
再帰を使用できます:
find()
for検索を提供する2番目のオプションの引数を使用するstarting index
ため、反復ごとに、その引数をによって返された現在の値に設定できますfind()+1
>>> strs='aabbaabbaabbaabbaa'
>>> def ret(x,a,lis=None,start=0):
if lis is None:
lis=[]
if x.find(a,start)!=-1:
index=x.find(a,start)
lis.append(index)
return ret(x,a,lis=lis,start=index+1)
else: return lis
>>> ret(strs,'aa')
[0, 4, 8, 12, 16]
>>> ret(strs,'bb')
[2, 6, 10, 14]
>>>
それを行う最も効率的な方法ではありません..しかし、それはワンライナーです!! それが重要な場合....:)
>>> s = "akjdsfaklafdjfjad"
>>> [n for n in set([s.find('a',x) for x in range(len(s))]) if n >= 0]
[0, 9, 6, 15]