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

  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • IGN

    IGN

    19 EYLÜL 2006
  • Kindness

    Kindness

    23 Ocak 2006