आप अधिकतम n+1 विभाजन के साथ सबस्ट्रिंग पर विभाजित करके एक स्ट्रिंग में एक सबस्ट्रिंग की nth घटना पा सकते हैं। यदि परिणामी सूची का आकार n+1 से बड़ा है, तो इसका मतलब है कि सबस्ट्रिंग n बार से अधिक होता है। इसका सूचकांक एक साधारण सूत्र द्वारा पाया जा सकता है, मूल स्ट्रिंग की लंबाई - अंतिम विभाजित भाग की लंबाई - सबस्ट्रिंग की लंबाई।
उदाहरण
def findnth(string, substring, n): parts = string.split(substring, n + 1) if len(parts) <= n + 1: return -1 return len(string) - len(parts[-1]) - len(substring) findnth('foobarfobar akfjfoobar afskjdf foobar', 'foobar', 2)
आउटपुट
यह आउटपुट देगा:
31
इसमें n 0 से शुरू होता है। इसे बदलना काफी तुच्छ है।