2011-05-15 10 views
25

मेरे पास ऐसा कुछ है:केवल एक स्ट्रिंग के पहले घटना को बदलें?

text = 'This text is very very long.' 
replace_words = ['very','word'] 

for word in replace_words: 
    text = text.replace('very','not very') 

मैं केवल पहले 'बहुत' को प्रतिस्थापित करना चाहता हूं या चुन सकता हूं कि 'बहुत' ओवरराइट हो जाता है। मैं इसे टेक्स्ट की बड़ी मात्रा में कर रहा हूं इसलिए मैं नियंत्रित करना चाहता हूं कि डुप्लिकेट शब्दों को कैसे बदला जा रहा है।

उत्तर

60
text = text.replace("very", "not very", 1) 

>>> help(str.replace) 
Help on method_descriptor: 

replace(...) 
    S.replace (old, new[, count]) -> string 

    Return a copy of string S with all occurrences of substring 
    old replaced by new. If the optional argument count is 
    given, only the first count occurrences are replaced. 
3
http://docs.python.org/release/2.5.2/lib/string-methods.html से

:

की जगह स्ट्रिंग की एक प्रतिलिपि (पुराने, नए [, गिनती])
वापसी सबस्ट्रिंग की सभी घटनाओं के साथ पुराने द्वारा प्रतिस्थापित किया गया। यदि वैकल्पिक तर्क गणना दी जाती है, तो केवल पहली गणना घटनाओं को प्रतिस्थापित किया जाता है।

मैं कोशिश नहीं की लेकिन मेरा मानना ​​है कि यह काम करता है

11
text = text.replace("very", "not very", 1) 

तीसरे पैरामीटर घटनाओं है कि आप बदलना चाहते हैं की अधिकतम संख्या है।
the documentation for Python से:

string.replace (रों, पुराने, नए [, maxreplace])
वापसी नई द्वारा प्रतिस्थापित वर्ष सबस्ट्रिंग की सभी घटनाओं के साथ स्ट्रिंग रों की एक प्रति। यदि वैकल्पिक तर्क maxreplace दिया जाता है, तो पहली maxreplace घटनाओं को प्रतिस्थापित कर रहे हैं।

संबंधित मुद्दे