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

  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009
  • Noam Erez

    Noam Erez

    3 NİSAN 2012
  • TechBalance

    TechBalance

    12 HAZİRAN 2011