একটি পাইথন সাবস্ট্রিং হলো একটি স্ট্রিং থেকে নেওয়া টেক্সটের একটি অংশ। আপনি পাইথনে স্লাইসিং ব্যবহার করে একটি সাবস্ট্রিং বের করতে পারেন, ফরম্যাট: YourString[StartingIndex:StoppingIndex:CharactersToSkip]।
প্রায়শই প্রোগ্রামারদের ডেটা থাকে যেগুলো তারা ভিন্ন অংশে ভাগ করতে চান। উদাহরণস্বরূপ, একজন ডেভেলপারের কাছে একজন ব্যবহারকারীর পুরো নাম থাকতে পারে, কিন্তু শুধু তাদের প্রথম নাম দরকার। এই কেসে, ডেভেলপার নামটিকে দুটি অংশে ভাগ করতে চান: forenname এবং surname।
পাইথন প্রোগ্রামিং ভাষায় এটা কীভাবে করা যায়? সেটা হলো স্ট্রিং স্লাইসিং। স্লাইসিং নামক একটি টেকনিক ব্যবহার করে, আমরা একটি স্ট্রিংয়ের নির্দিষ্ট অংশ পেতে পারি, যা পরবর্তীতে একটি সাবস্ট্রিং হয়ে যায়। এই টিউটোরিয়ালে, আমরা ভাঙবো কীভাবে পাইথনে সাবস্ট্রিং কাজ করে, এবং আপনি কীভাবে স্লাইসিং ব্যবহার করে নিজের সাবস্ট্রিং তৈরি করতে পারেন।
স্ট্রিং ইনডেক্স: একটি রিফ্রেশার
স্লাইসিং এবং স্লাইস সিনট্যাক্স নিয়ে আলোচনা করার আগে, আমাদের প্রথমে দেখতে হবে পাইথন স্ট্রিংগুলো কীভাবে ইনডেক্স করা হয়।
পাইথনে, একটি স্ট্রিং হলো এক বা একাধিক ক্যারেক্টরের সিকোয়েন্স যাতে নম্বর, স্পেস, লেটার, বা সিম্বল থাকতে পারে। আপনি একটি স্ট্রিংয়ের অংশ এক্সেস করতে পারেন ঠিক उसीভাবে যেভাবে অন্যান্য সিকোয়েন্সের সাথে, যেমন একটি তালিকা।
স্ট্রিংয়ের প্রতিটি ক্যারেক্টরের নিজস্ব ইনডেক্স মান থাকে, যা স্ট্রিংয়ে ক্যারেক্টারের লোকেশন বলে। এই নম্বরগুলো ০ ইনডেক্স নম্বর থেকে শুরু হয়। উদাহরণস্বরূপ, Python Substrings স্ট্রিংটি কীভাবে রিপ্রেজেন্ট করা হয় তা নিচে দেওয়া হলো:
| P | y | t | h | o | n | S | u | b | s | t | r | i | n | g | ! | |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
আমাদের স্ট্রিংয়ের প্রথম ক্যারেক্টার (P), এর ইনডেক্স মান ০। ! ক্যারেক্টার-টির ইনডেক্স মান ১৬।
যেহেতু প্রতিটি ক্যারেক্টারের নিজস্ব ইনডেক্স নম্বর থাকে, তাই আমরা আমাদের স্ট্রিংয়ের ব্যক্তিগত ক্যারেক্টার পড়তে এবং পরিবর্তন করতে পারি।
পাইথন স্ট্রিং সাবস্ট্রিং
মান লें আমরা একটি স্ট্রিং থেকে প্রথম তিনটি ক্যারেক্টার পেতে চাই—কীভাবে করব? অথবা যদি আমরা একটি স্ট্রিংয়ের শেষ দুটি ক্যারেক্টার পেতে চাই?
আমরা স্লাইসিং নামে একটি টেকনিক ব্যবহার করে একটি স্ট্রিং থেকে নির্দিষ্ট ডেটা বের করতে পারি। এখানে আমরা একটি নির্দিষ্ট স্ট্রিং থেকে ক্যারেক্টারের সিকোয়েন্স নির্দিষ্ট করি যা আমরা বের করতে চাই। আমরা স্লাইস ব্যবহার করে একটি স্ট্রিং থেকে যেকোনো ডেটা পেতে পারি। আমরা যে সিনট্যাক্স ব্যবহার করি:
string[start:end:step]
একটি স্লাইসের তিনটি উপাদান থাকে:
- start: ইনডেক্স পজিশন যেখানে আমাদের স্লাইস শুরু হবে। ডিফল্টভাবে এটি ০।
- end: वह পজিশন যেখানে স্লাইস শেষ হবে। এন্ড পজিশনের ক্যারেক্টার স্লাইসে অন্তর্ভূত থাকে না। ডিফল্টভাবে, এন্ড হলো স্ট্রিংয়ের দৈর্ঘ্য।
- step: স্লাইসকে নির্দেশ করে প্রতি Nth ক্যারেক্টার উপেক্ষা করতে। N সমান যে step আপনি নির্দিষ্ট করবেন। ডিফল্টভাবে step সমান ১।
সাবস্ট্রিং পাইথন: উদাহরণ
প্রথম তিনটি ক্যারেক্টার বের করা
আমরা একটি স্ট্রিং থেকে প্রথম তিনটি ক্যারেক্টার বের করব। সেটা করার জন্য, আমরা স্লাইসিং সিনট্যাক্স ব্যবহার করব:
ourString = "Python Substring!" print(ourString[0:3])
আমাদের কোডের আউটপুট:
Pyt
শুরু নম্বর বাদ দেওয়া
আমরা প্রথম নম্বর বাদ দিয়েও টেক্সটে একটি নির্দিষ্ট মান পর্যন্ত সব ক্যারেক্টার পেতে পারি। এটি সুবিধাজনক যদি আমাদের প্রয়োজনীয় টেক্সট স্ট্রিংয়ের শুরুতে থাকে।
আমরা এই টেকনিক ব্যবহার করতে পারি একটি স্ট্রিং থেকে প্রথম তিনটি ক্যারেক্টার বের করতে ০ কে স্ট্রাট নম্বর হিসেবে নির্দিষ্ট না করেই:
ourString = "Python Substring!" print(ourString[:3])
আমাদের কোড আগের উদাহরণের মতো একই আউটপুট ফেরত দেয়। আমরা কোনো স্ট্রাট মান নির্দিষ্ট করিনি। কারণ ডিফল্টভাবে start ০। আমরা স্ট্রিংয়ের শুরু থেকে ক্যারেক্টার বের করতে চাই তাই এই সিনট্যাক্স কাজ করে।
শেষ দুটি ক্যারেক্টার বের করা
আমরা একটি স্ট্রিংয়ের শেষ পাঁচটি ক্যারেক্টার নেগেটিভ ইনডেক্স মান এবং একটি স্ট্রাট নম্বর ব্যবহার করে বের করতে পারি:
value = "Python" print(value[-2:])
আমাদের কোড ফেরত দেয়: on। আমরা শুধু একটি মান নির্দিষ্ট করেছি: -2। এটি আমাদের স্ট্রাট নম্বর। -2 আমাদের স্লাইসকে বলে স্ট্রিংয়ের দ্বিতীয় শেষ ইনডেক্স পজিশন থেকে ক্যারেক্টার বের করতে শুরু কর।
অন্যান্য উদাহরণ
আমরা স্লাইসিং মেথড শিখতে সাহায্য করার জন্য আরও কিছু উদাহরণ প্রস্তুত করেছি।
একটি স্ট্রিংয়ের শেষ ক্যারেক্টার বের করা
value = "Python" print(value[-1]) Output: n
এই উদাহরণে আমরা শুধু একটি স্ট্রাট মান নির্দিষ্ট করেছি। কোনো এন্ড মান নেই। এর মানে আমাদের স্ট্রিং শুধু শেষ ক্যারেক্টারটি বের করবে।
২ এবং ৩ রেঞ্জের ক্যারেক্টার বের করা
value = "Python" print(value[2:3]) Output: t
আমাদের স্ট্রাট মান ২ এবং এন্ড মান ৩। ২ এবং ৩ রেঞ্জের সব ক্যারেক্টার ফেরত দেওয়া হয়। এটি ক্যারেক্টার ৩ বাদ দিয়ে, কারণ এন্ড মান এক্সক্লूसিভ।
প্রতি দ্বিতীয় ক্যারেক্টার স্কিপ করা
value = "Python" print(value[::2]) Output: Pto
আমরা দুইটি কলন ব্যবহার করেছি পাইথনকে বোঝাতে যে আমরা ডিফল্ট স্ট্রাট এবং এন্ড প্যারামিটার ব্যবহার করতে চাই। আমরা ২ কে step হিসেবে নির্দিষ্ট করেছি। এর মানে আমাদের স্লাইস আমাদের স্ট্রিং থেকে প্রতি দ্বিতীয় ক্যারেক্টার বের করবে।
এই টিউটোরিয়ালের Repl.it দেখুন:
উপসংহার
একটি সাবস্ট্রিং হলো একটি বড় স্ট্রিংয়ের অংশ। একটি সাবস্ট্রিং বের করতে, আপনি স্লাইসিং সিনট্যাক্স ব্যবহার করতে পারেন। স্লাইসিং আপনাকে ক্যারেক্টার বের করার জন্য একটি রেঞ্জ সংজ্ঞায়িত করতে দেয়। আপনি একটি অপশনাল থার্ড প্যারামিটার ব্যবহার করে একটি রেঞ্জে নির্দিষ্ট ক্যারেক্টার স্কিপ করতে পারেন।
আমাদের লার্ন পাইথন গাইডে পাইথন ভাষা সম্পর্কে আরও জানুন।