10 Aralık 2009, PERŞEMBE
Bir dize içinde bir alt dize N. oluşum bul
Bu oldukça önemsiz olması gerektiği gibi görünüyor, ama Python yeni başladım ve bu yapmak istediğim en Pythonic yol.
Bir dize içinde bir alt dize n ' inci geçtiği bulmak istiyorum.
Bir şey yapmak İSTEDİĞİM için eşdeğer olmalı
mystring.find("substring", 2nd)
Nasıl Python ile bu elde edebilirsiniz?
CEVAP
10 Aralık 2009, PERŞEMBE
Mark yinelemeli yaklaşım her zamanki gibi olur diye düşünüyorum.
Burada sık sık bulma ile ilgili işlemler için faydalı olabilir hangi dize baş yolduran bir alternatif:
def findnth(haystack, needle, n):
parts= haystack.split(needle, n 1)
if len(parts)<=n 1:
return -1
return len(haystack)-len(parts[-1])-len(needle)
Ve burada bir hızlı (ve biraz kirli, o iğneyi karşılayamayacağı bazı saman seçmek zorundasınız) oyunu:
'foo bar bar bar'.replace('bar', 'XXX', 1).find('bar')
Bunu Paylaş:
Nasıl bir dize içinde bir dize tekrarı...
Nasıl belirli bir dize için depodaki G...
Herhangi bir parametre Listesi içinde ...
Nasıl/NVARCHAR dize eklemek bir SQL Se...
Bir dize içinde dolaşmak...