क्या पायथन में कोई फ़ंक्शन है जो मैं एक स्ट्रिंग की एक निश्चित स्थिति में एक मूल्य डालने के लिए उपयोग कर सकता हूं?
कुछ इस तरह:
"3655879ACB6"फिर स्थिति 4 "-"में बनने के लिए जोड़ें"3655-879ACB6"
क्या पायथन में कोई फ़ंक्शन है जो मैं एक स्ट्रिंग की एक निश्चित स्थिति में एक मूल्य डालने के लिए उपयोग कर सकता हूं?
कुछ इस तरह:
"3655879ACB6"फिर स्थिति 4 "-"में बनने के लिए जोड़ें"3655-879ACB6"
जवाबों:
नहीं। पायथन स्ट्रिंग्स अपरिवर्तनीय हैं।
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
हालाँकि, सम्मिलित वर्ण में एक नया स्ट्रिंग बनाना संभव है:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
यह बहुत आसान लगता है:
>>> hash = "355879ACB6"
>>> hash = hash[:4] + '-' + hash[4:]
>>> print hash
3558-79ACB6
हालाँकि, अगर आपको कोई फ़ंक्शन पसंद है, तो इस तरह करें:
def insert_dash(string, index):
return string[:index] + '-' + string[index:]
print insert_dash("355879ACB6", 5)
जैसा कि स्ट्रिंग्स अपरिवर्तनीय हैं ऐसा करने का एक और तरीका है कि स्ट्रिंग को एक सूची में बदल दिया जाए, जिसे बाद में बिना किसी स्लाइसिंग ट्रिकरी के अनुक्रमित और संशोधित किया जा सकता है। हालाँकि, सूची को वापस स्ट्रिंग में लाने के लिए आपको .join()खाली स्ट्रिंग का उपयोग करना होगा ।
>>> hash = '355879ACB6'
>>> hashlist = list(hash)
>>> hashlist.insert(4, '-')
>>> ''.join(hashlist)
'3558-79ACB6'
मुझे यकीन नहीं है कि यह प्रदर्शन के रूप में कहाँ तक तुलना करता है, लेकिन मुझे लगता है कि यह अन्य समाधानों की तुलना में आंखों पर आसान है। ;-)
मैंने पायथन में एक निश्चित स्थिति में एक स्ट्रिंग जोड़ने के लिए एक बहुत ही उपयोगी तरीका बनाया है :
def insertChar(mystring, position, chartoinsert ):
longi = len(mystring)
mystring = mystring[:position] + chartoinsert + mystring[position:]
return mystring
उदाहरण के लिए:
a = "Jorgesys was here!"
def insertChar(mystring, position, chartoinsert ):
longi = len(mystring)
mystring = mystring[:position] + chartoinsert + mystring[position:]
return mystring
#Inserting some characters with a defined position:
print(insertChar(a,0, '-'))
print(insertChar(a,9, '@'))
print(insertChar(a,14, '%'))
हमारे पास आउटपुट के रूप में होगा:
-Jorgesys was here!
Jorgesys @was here!
Jorgesys was h%ere!
मुझे लगता है कि उपरोक्त उत्तर ठीक हैं, लेकिन मैं समझाता हूं कि उनके लिए कुछ अप्रत्याशित-लेकिन-अच्छे दुष्प्रभाव हैं ...
def insert(string_s, insert_s, pos_i=0):
return string_s[:pos_i] + insert_s + string_s[pos_i:]
यदि इंडेक्स पॉस_आई बहुत छोटा (बहुत नकारात्मक) है, तो इंसर्ट स्ट्रिंग प्रीपेड हो जाती है। यदि बहुत लंबा है, तो सम्मिलित स्ट्रिंग संलग्न हो जाती है। यदि pos_i, -len (string_s) और + len (string_s) - 1 के बीच है, तो सम्मिलित स्ट्रिंग सही स्थान पर प्रविष्ट हो जाती है।
यदि आप कई आवेषण चाहते हैं
from rope.base.codeanalyze import ChangeCollector
c = ChangeCollector(code)
c.add_change(5, 5, '<span style="background-color:#339999;">')
c.add_change(10, 10, '</span>')
rend_code = c.get_changed()
s[:-4]