পাইথনে এমন কোনও ফাংশন আছে যা আমি কোনও স্ট্রিংয়ের নির্দিষ্ট অবস্থানে একটি মান সন্নিবেশ করতে ব্যবহার করতে পারি?
এটার মতো কিছু:
"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
তবে, একটি নতুন স্ট্রিং তৈরি করা সম্ভব যা এতে characterোকানো অক্ষর রয়েছে:
>>> 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 খুব ছোট হয় (খুব নেতিবাচক) তবে stringোকানো স্ট্রিংটি চাপ দেওয়া হয়ে যায়। যদি খুব দীর্ঘ হয় তবে sertোকানো স্ট্রিং যুক্ত হয়ে যায়। যদি pos_i -len (স্ট্রিং_এস) এবং + লেন (স্ট্রিং_এস) - 1 এর মধ্যে থাকে তবে সন্নিবেশ স্ট্রিংটি সঠিক জায়গায় getsোকানো হবে।
আপনি যদি অনেক সন্নিবেশ চান
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]