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

  • FASHTAG

    FASHTAG

    5 EYLÜL 2012
  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006