পাইথন 3.x তে স্ট্রিং.রেপ্লেস () কীভাবে ব্যবহার করবেন


280

স্ট্রিং.রেপ্লেস () অজগর 3.x এ অবচয় করা হয়েছে। এটি করার নতুন উপায় কী?


11
এফডাব্লুআইডাব্লু, আমারও একই বিভ্রান্তি ছিল। গুগল "পাইথন স্ট্রিং প্রতিস্থাপন" পাইথন ২.7 এ আমাকে পুরানো অবহেলিত স্ট্রিং ফাংশনে নিয়ে গেছে। আইএমএইচও, বিভাগটি "স্ট্রিং.এক্সএক্সএক্স ()" বনাম "এক্সএক্সএক্সএক্স (স্ট্রিং)" ব্যাখ্যা করে এবং লোকজনকে অবহিত না করা
টুলমেকারস্টেভ

8
পাইথন ডকুমেন্টেশন একে একে প্রথম প্রথম ভাষা হিসাবে বিবেচনা করা বিবেচনা করে একটি নিখুঁত কাঁপছে। বেশিরভাগ ক্ষেত্রে জিনিসগুলি থাকে, তবে এটির ব্যবস্থাটি খুব খারাপভাবে হওয়ায় এটি প্রায়শই সার্চ ইঞ্জিন বা এমনকি তাদের নিজস্ব সাইট দ্বারা ভালভাবে সূচিযুক্ত হয় না। টুলমেকারস্টিভের লিঙ্কটি দেখুন, মূল স্ট্রিং ফাংশনগুলি স্ট্যান্ডার্ড ধরণের হয়ে গেছে। আপনি স্ট্রিং ফাংশন অনুসন্ধান করার সময় এটি আসে না।
অ্যান্ড্রু এস

10
পরিষ্কার হতে হবে: স্ট্রিং.রেপ্লেস () আসলে পাইথন 3 এ
অবমূল্যায়ন করা হয়নি


1
কখনও কখনও লোকেরা "আপনার স্ট্রিং ভেরিয়েবল] .রেপস বলতে চাইলে" স্ট্রিংরেপ্লেস "লিখেন। কারণ 'str' প্রাসঙ্গিক শ্রেণীর নামও এটি বিভ্রান্তিকর হতে পারে।
পাঠ্যগীক

উত্তর:


315

2.x হিসাবে, ব্যবহার করুন str.replace()

উদাহরণ:

>>> 'Hello world'.replace('world', 'Guido')
'Hello Guido'

4
"পুনরায়" (নিয়মিত প্রকাশ) মডিউলের (কিছু? সব?) অবমূল্যায়িত স্ট্রিং ফাংশনের বিকল্প রয়েছে। এই ক্ষেত্রে re.sub(),।
টুলমেকারস্টেভ

8
@ টুলমেকারস্টেভ: stringফাংশনগুলি হ্রাস করা হয়েছে। strপদ্ধতি হয় না।
ইগনাসিও ওয়াজকেজ-আব্রামস

6
এফডাব্লুআইডাব্লু, যখনই আমি গুগল করি, মনে হয় পুরানো অবহেলিত স্ট্রিং ফাংশন শেষ হবে। এখানে (অবচয়হীন) স্ট্রিং পদ্ধতির লিঙ্কটি রয়েছে। docs.python.org/3.3/library/stdtypes.html#string-methods ~ or_for_2 ~ docs.python.org/2/library/stdtypes.html#string-methods
ToolmakerSteve

36
পাইথন ডকুমেন্টেশন নেভিগেট করতে যদি আমাকে ওভারফ্লো স্ট্যাক করতে আসতে হয় তবে স্পষ্টতই সমস্যা আছে। পাইথন টিম পড়লে। বাছাই করা!
অ্যান্ড্রু এস

2
ক্লাস নয়, বস্তুটিতে পদ্ধতিটি কল করুন। 'foo'.replace(...)
Ignacio Vazquez-

108

replace()<class 'str'>পাইথন 3 এর একটি পদ্ধতি :

>>> 'hello, world'.replace(',', ':')
'hello: world'

13

পাইথন 3 এ প্রতিস্থাপন () পদ্ধতিটি সহজভাবে ব্যবহৃত হয়:

a = "This is the island of istanbul"
print (a.replace("is" , "was" , 3))

#3 is the maximum replacement that can be done in the string#

>>> Thwas was the wasland of istanbul

# Last substring 'is' in istanbul is not replaced by was because maximum of 3 has already been reached

2
মনে রাখবেন যে আপনি 3 টিও রাখতে পারবেন না এবং এটি সমস্ত কাকতালিকে পরিবর্তন করবে।
এন্ডের লুক

4

আপনি str.replap () str.replace এর শৃঙ্খলা হিসাবে ব্যবহার করতে পারেন । ভাবেন আপনার মতো স্ট্রিং রয়েছে 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'এবং আপনি সমস্ত '#',':',';','/'চিহ্নটি এর সাথে প্রতিস্থাপন করতে চান '-'। আপনি এটিকে এইভাবে (সাধারণ উপায়ে) প্রতিস্থাপন করতে পারেন,

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'
>>> str = str.replace('#', '-')
>>> str = str.replace(':', '-')
>>> str = str.replace(';', '-')
>>> str = str.replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'

বা এই উপায়ে ( str.replace এর চেইন )

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'.replace('#', '-').replace(':', '-').replace(';', '-').replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'


1

এফওয়াইআই, যখন স্ট্রিংয়ের অভ্যন্তরে একটি স্বেচ্ছাসেবী, অবস্থান-স্থির শব্দের সাথে কিছু অক্ষর যুক্ত করা হয় (যেমন প্রত্যয় যুক্ত করে একটি বিশেষণে বিশেষণ পরিবর্তন করা ), আপনি পাঠ্যতার জন্য লাইনের শেষে প্রত্যয়টি রাখতে পারেন। এটি করতে, split()ভিতরে ব্যবহার করুন replace():

s="The dog is large small"
ss=s.replace(s.split()[3],s.split()[3]+'ly')
ss
'The dog is largely small'

0
ss = s.replace(s.split()[1], +s.split()[1] + 'gy')
# should have no plus after the comma --i.e.,
ss = s.replace(s.split()[1], s.split()[1] + 'gy')

6
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কেন এবং / অথবা এটি কীভাবে প্রশ্নের উত্তর দেয় সে সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করে এর দীর্ঘমেয়াদী মানকে উল্লেখযোগ্যভাবে উন্নতি করবে। কিছু ব্যাখ্যা যুক্ত করতে দয়া করে আপনার উত্তরটি সম্পাদনা করুন।
কোডমাউস92

সঠিক উত্তর পূর্বে স্ট্রিং.রেপসটি অজগর 3 এ কাজ করে বলেছে।
জর্ফাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.