পাইথনের random.shuffle() মেথড একটি লিস্টের আইটেমগুলোর ক্রমকে র্যান্ডমলি পরিবর্তন করে। ইন্ডেক্সিং-এর সাথে মিলিয়ে এই মেথডটি লিস্ট থেকে র্যান্ডমভাবে একটি আইটেম নির্বাচনের জন্য উপকারী। random.shuffle() মেথডটি একটি আর্গুমেন্ট গ্রহণ করে: যে লিস্টটি আপনি পরিবর্তন করতে চান।
আপনি এমন পরিস্থিতিতে পড়তে পারেন যেখানে একটি লিস্টের আইটেমগুলোর ক্রম র্যান্ডমাইজ করতে হয়। উদাহরণস্বরূপ, ধরুন আপনি আপনার দোকানের রাফল বিজয়ী নির্বাচন করার একটি প্রোগ্রাম তৈরি করছেন। আপনি চাইতে পারেন যে প্রোগ্রামটি অংশগ্রহণকারীদের লিস্টকে র্যান্ডমভাবে পুনর্বিন্যাস করে বিজয়ী নির্বাচন করুক।
ইহায় random.shuffle() মেথডটি কাজে আসে। random.shuffle() মেথডটি পাইথনের random মডিউলের অংশ এবং একটি লিস্টের আইটেমগুলোর ক্রম র্যান্ডমভাবে পরিবর্তন করতে ব্যবহৃত হয়। এই টিউটোরিয়ালে আমরা random.shuffle() মেথডটির ব্যবহার আলোচনা করব।
পাইথন শাফল লিস্ট
random.shuffle() পাইথন ফাংশনটি একটি লিস্টের আইটেমগুলোর ক্রম র্যান্ডমভাবে পুনর্বিন্যাস করে। এই মেথডটি র্যান্ডমভাবে একটি লিস্ট থেকে আইটেম রিট্রিভ করার জন্য উপকারী। random.shuffle() মেথডটি মূল লিস্টটিকে সংশোধন করে; এটি একটি নতুন লিস্ট তৈরি করে না।
একটি list ডেটার সংগ্রহ সংরক্ষণ করে। পাইথন লিস্টগুলো ক্রমযুক্ত (ordered), অর্থাৎ আপনি লিস্টে একটি আইটেম সংরক্ষণ করলে সেটি সেই পজিশনে থাকে। যদিও এটি লিস্টের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, কিন্তু আপনি এমন প্রোগ্রাম তৈরি করতে পারেন যেটি লিস্টের ক্রম শাফল করতে চায়।
random.shuffle() পাইথনের random লাইব্রেরির অংশ, যা পাইথনে 의사-র্যান্ডম নাম্বার জেনারেটর বাস্তবায়ন করে। অর্থাৎ, random.shuffle() মেথডটি ব্যবহার করার আগে আমাদের কোডে random লাইব্রেরি ইম্পোর্ট করতে হবে। আমরা নিম্নলিখিতভাবে এটি করতে পারি:
import random
random.shuffle() মেথডের সিনট্যাক্স নিম্নরূপ:
import random random.shuffle(list_name, function)
random.shuffle() মেথডটি দুটি প্যারামিটার গ্রহণ করে:
- list_name: যে
list,tuple, বাstring-এর ক্রম আপনি শাফল করতে চান (আবশ্যক)। - function: 0.0 এবং 1.0 এর মধ্যে একটি র্যান্ডম ফ্লোট রিটার্ন করার ফাংশনের নাম, বা সেই রেঞ্জের অন্য একটি ফ্লোট (ঐচ্ছিক)।
random.shuffle()-এর সাথে function প্যারামিটার ব্যবহার করা অসামান্য। আপনি এটি শুধু তখন ব্যবহার করেন যখন আপনি একটি কাস্টম শাফল অ্যালগরিদম ব্যবহার করতে চান যা মানগুলোর ভিন্ন ভিত্তিতে ওজন দেয়। এই টিউটোরিয়ালে আমরা random.shuffle()-এর function প্যারামিটার আলোচনা করব না।
আপনি স্ট্রিং বা টাপলেও random.shuffle() মেথডটি ব্যবহার করতে পারেন। যেকোনো ক্ষেত্রে, random.shuffle() মূল ডেটাকে সংশোধন করে; এটি একটি নতুন স্ট্রিং বা টাপল তৈরি করে না।
পাইথন random.shuffle(): উদাহরণ
মান লেইয়া আমরা আমাদের দোকানে একটি রাফল আয়োজন করছি। বিজয়ীকে ১০০ ডলারের একটি গিফট কার্ড পাওয়া যাবে যা সে দোকানের যেকোনো পণ্য ক্রয় করতে পারবে। দ্বিতীয় സ്ഥানীয়কে ৫০ ডলারের এবং তৃতীয় স্থানেরকে ২৫ ডলারের গিফট কার্ড পাওয়া যাবে।
আমাদের কাছে রাফলে অংশগ্রহণকারীদের নামের একটি লিস্ট আছে। আমাদের লক্ষ্য হলো লিস্টটিকে র্যান্ডম ক্রমে পুনর্বিন্যাস করে বিজয়ীদের নির্ধারণ করা। এর জন্য আমরা random.shuffle() মেথডটি ব্যবহার করব।
লিস্টের ক্রম র্যান্ডমভাবে পুনর্বিন্যাস করতে আমরা নিম্নলিখিত কোডটি ব্যবহার করতে পারি:
import random
raffle_entrants = ['Thomas Crane', 'Braden Cox', 'Adie Paulson', 'Leonardo Downs', 'Lindsay Knapp', 'Carl Sanderson']
print('Entrants (ordered)')
print(raffle_entrants)
print('Winners (random order)')
random.shuffle(raffle_entrants)
print(raffle_entrants)
আমাদের ফাংশনটি নিম্নলিখিত আউটপুট রিটার্ন করে:
Entrants (ordered) ['Thomas Crane', 'Braden Cox', 'Adie Paulson', 'Leonardo Downs', 'Lindsay Knapp', 'Carl Sanderson'] Winners (random order) ['Adie Paulson', 'Braden Cox', 'Carl Sanderson', 'Leonardo Downs', 'Thomas Crane', 'Lindsay Knapp']
প্রথম লাইনে আমরা পাইথন ইম্পোর্ট স্টেটমেন্ট ব্যবহার করে random লাইব্রেরি ইম্পোর্ট করেছি। এই লাইব্রেরিতে random.shuffle() মেথডটি আছে যা আমরা পরে ব্যবহার করব। তারপর, আমরা raffle_entrants নামক একটি পাইথন ভেরিয়েবল ডিক্লেয়ার করেছি যেটি রাফলে অংশগ্রহণকারী সবার নাম ধারণ করে।
পরবর্তী দুটি লাইনে, আমরা কনসোলে Entrants (ordered) মেসেজটি প্রিন্ট করেছি, তারপর raffle_entrants লিস্টের কন্টেন্ট। এটি আমাদের শাফল করার আগের লিস্টটি দেখতে দেয়।
আমরা কনসোলে Winners (random order) মেসেজটি প্রিন্ট করেছি। আমাদের কোড random.shuffle() মেথডটি ব্যবহার করে raffle_entrants লিস্টের কন্টেন্ট শাফল করে। अन्तে, আমরা random.shuffle() দিয়ে শাফল হওয়ার পর raffle_entrants লিস্টটি প্রিন্ট করেছি।
এখন আমাদের কাছে নামের একটি র্যান্ডম শাফল করা লিস্ট আছে। উপরের উদাহরণ অনুযায়ী, আমরা এখন জানি ব্রেডেন কক্স প্রথম স্থান, থমাস ক্রেন দ্বিতীয় স্থান এবং লিওনার্দো ডাউন্স তৃতীয় স্থান পেয়েছে।
আমাদের কোড যাচাই করা
আমরা যদি আবার কোডটি রান করি, তবে একটি নতুন ক্রমে লিস্ট পাব। দ্বিতীয়বার কোড এক্সিকিউট করলে নিম্নলিখিত ফলাফল আসে:
Entrants (ordered) ['Thomas Crane', 'Braden Cox', 'Adie Paulson', 'Leonardo Downs', 'Lindsay Knapp', 'Carl Sanderson'] Winners (random order) ['Braden Cox', 'Lindsay Knapp', 'Carl Sanderson', 'Leonardo Downs', 'Thomas Crane', 'Adie Paulson']
সুতরাং, স্পষ্ট যে random.shuffle() প্রতিবার ব্যবহার করলে একটি র্যান্ডমভাবে সাজানো লিস্ট রিটার্ন করে (তхниকভাবে 의사-র্যান্ডমভাবে সাজানো লিস্ট)।
উপসংহার
পাইথনে random.shuffle() মেথড ব্যবহার করে একটি লিস্টের আইটেমগুলোর ক্রম র্যান্ডমাইজ করা যায়। আমাদের উদাহরণে, random.shuffle() আমাদের রাফল অংশগ্রহণকারীদের লিস্ট থেকে র্যান্ডমভাবে বিজয়ী নির্বাচন করার প্রোগ্রাম তৈরি করতে সাহায্য করেছে।
আপনি কি পাইথন প্রোগ্রামিং সম্পর্কে আরও জানতে চান? আমাদের How to Learn Python গাইড পড়ুন। এই গাইডে পাইথন শিখার টপ টিপস, লার্নিং রিসোর্স এবং কোর্সের তালিকা আছে যা আপনার পাইথন জ্ঞান বাড়াতে সাহায্য করবে।