SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • pucksz

    pucksz

    24 Mart 2006