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

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • KSI

    KSI

    25 Temmuz 2009
  • Skittles Page

    Skittles Pag

    28 Mart 2011