পাইথন sort() মেথড একটি লিস্টকে এর ভ্যালু অনুযায়ী অ্যাসেন্ডিং অর্ডারে সাজায়। reverse প্যারামিটার ব্যবহার করে ডিসেন্ডিং অর্ডারে সাজানো যায়। sort() অপশনালি একটি ফাংশন গ্রহণ করে যা কাস্টম সর্টিংয়ের অনুমতি দেয়।
সব কোডার कभी न कभी আইটেম বা ডেটা সর্ট করার পরিস্থিতি মুখোমুখি হয়। সর্টিং অনেক প্রসঙ্গে ক্রিটিক্যাল। ইউজারনেম রিভার্স অ্যালফাবেটিক্যাল অর্ডারে সাজাতে হয় বা ইমেইল রিসিপিয়েন্ট লিস্ট অ্যালফাবেটিক্যাল অর্ডারে হতে হয়।
পাইথনে লিস্ট সর্ট করার বিল্ট-ইন ফাংশন রয়েছে: sort()। এই ফাংশনে লিস্ট অর্ডার কাস্টমাইজ করার অনেক ফিচার রয়েছে।
এই টিউটোরিয়ালে পাইথনে সর্টিং বেসিক এবং sort() ফাংশন ব্যবহার আলোচনা করা হলো।
পাইথন সর্ট লিস্ট
sort() ফাংশন লিস্টকে অ্যাসেন্ডিং অর্ডারে সাজায়। কাস্টম সর্ট বা ডিসেন্ডিং অর্ডারের জন্য অপশনাল প্যারামিটার ব্যবহার করা যায়।
sort() মেথডের সিনট্যাক্স:
sort(reverse=True, key=function)
sort() মেথড دوটি অপশনাল আর্গুমেন্ট নেয়:
- reverse:
Trueসেট করলে লিস্ট ডিসেন্ডিং অর্ডারে সাজে। - key: একটি ফাংশন যা লিস্ট সাজাতে সাহায্য করে।
পাইথন সর্ট লিস্ট: অ্যাসেন্ডিং অর্ডার
নিচে একটি পাইথন অ্যারে ডিক্লেয়ার করা হয়েছে যেটা র্যান্ডম অর্ডারে নম্বর ধারণ করে। সাজাতে sort() ফাংশন ব্যবহার করুন:
81% পার্টিসিপেন্ট বুটক্যাম্পের পর টেক জব প্রস펙্টে আরও আত্মবিশ্বাসী মনে করেছেন। আজই বুটক্যাম্প খুঁজুন।
গড় বুটক্যাম্প গ্র্যাজুয়েট ক্যারিয়ার ট্রানজিশনে ৬ মাস কম সময় ব্যয় করে।
data = [9, 12, 8, 4, 6] data.sort() print(data)
আউটপুট:
[4, 6, 8, 9, 12]
প্রথম লাইনে র্যান্ডম অর্ডারে নম্বর লিস্ট। sort() কোনো আর্গুমেন্ট ছাড়া কল করলে অরিজিনাল লিস্ট অ্যাসেন্ডিং অর্ডারে সাজে। শেষে প্রিন্ট করা হয়।
sort() ফাংশন অরিজিনাল অ্যারেকে পরিবর্তন করে।
পাইথনে লিস্ট ডিসেন্ডিং অর্ডারে সাজানো
reverse আর্গুমেন্ট True হলে লিস্ট ডিসেন্ডিং অর্ডারে সাজে। ডিফল্টে reverse=False থাকে।
নিচে ছাত্রদের নামের লিস্ট। রিভার্স অ্যালফাবেটিক্যাল অর্ডারে সাজাতে sort() সাথে reverse আর্গুমেন্ট ব্যবহার করুন:
students = ['Hannah', 'Arnold', 'Paul', 'Chris', 'Kathy'] students.sort(reverse=True) print(students)
আউটপুট (রিভার্স অ্যালফাবেটিক্যাল অর্ডার):
['Paul', 'Kathy', 'Hannah', 'Chris','Arnold']
পাইথন কি (Key) দিয়ে সর্টিং
আমরা নিজের পছন্দমতো সর্টিং মেথড দিয়ে লিস্ট সাজাতে পারি। উদাহরণস্বরূপ, স্ট্রিং এর দৈর্ঘ্য অনুযায়ী সাজানো।
স্ট্রিং দৈর্ঘ্য অনুযায়ী সর্ট (Sort By String Length)
key প্যারামিটার দিয়ে কাস্টম সর্ট ডিফাইন করা যায়। স্ট্রিং দৈর্ঘ্য অনুযায়ী সর্টের উদাহরণ:
students = ['Sophie', 'Alexander', 'Paul', 'Chris', 'Ann'] sortedStudents = sorted(students, key=len) print(sortedStudents)
আউটপুট:
['Ann', 'Paul', 'Chris', 'Sophie', 'Alexander']
কোড লিস্টকে স্ট্রিং দৈর্ঘ্য অনুযায়ী সাজিয়েছে। Ann (৩ অক্ষর) প্রথমে, Alexander (৯ ক্যারেক্টার) শেষে।
এখানে len() (পাইথনের বিল্ট-ইন ফাংশন) ব্যবহার করা হয়েছে। অ্যারে এর প্রতিটি স্ট্রিং len()-এ পাস হয়েছে, তারপর ফাইনাল লিস্ট অর্ডার হয়েছে।
একইভাবে str.upper ব্যবহার করে আপারকেস লেটার অনুযায়ী অ্যালফাবেটিক্যাল সর্ট করা যায়, অথবা অন্য পাইথন ফাংশন দিয়ে কাস্টম সর্ট।
JSON কন্টেন্ট অনুযায়ী সর্ট (Sort by JSON Contents)
key দিয়ে নিজের ফাংশন ডিফাইন করে সর্টিং লজিক বোঝাতে পারা যায়। JSON অ্যারে নির্দিষ্ট ভ্যালু অনুযায়ী রিভার্স সর্ট করার উদাহরণ (ছাত্রদের টেস্ট স্কোর):
def sortFunction(value): return value["test_score"] students = [ { "name": "Sophie", "test_score": 75 }, { "name": "Ann", "test_score": 67 }, { "name": "Chris", "test_score": 73 } ] sortedStudents = sorted(students, key=sortFunction) print(sortedStudents) আউটপুট:
[{'name': 'Ann', 'test_score': 67}, {'name': 'Chris', 'test_score': 73}, {'name': 'Sophie', 'test_score': 75}] কোড ছাত্রদের টেস্ট স্কোর অনুযায়ী সাজিয়েছে।
প্রথমে sortFunction ডিফাইন করা হয়েছে যা test_score ভ্যালু অনুযায়ী সর্ট করবে। তারপর students JSON অ্যারে ডিক্লেয়ার। sortFunction কী হিসেবে কল করে সর্ট করা হয়েছে। শেষে প্রিন্ট।
উপসংহার
এই টিউটোরিয়ালে পাইথন sort() ফাংশন ব্যবহার করে লিস্ট সর্ট করার পদ্ধতি ব্যাখ্যা করা হয়েছে। sort() বিভিন্ন ডেটা টাইপে, reverse প্যারামিটার দিয়ে রিভার্স অর্ডার, এবং key দিয়ে গ্রানুলার সর্টিং কভার করা হয়েছে।
পাইথন কোডিং শিখতে আমাদের সম্পূর্ণ গাইড পড়ুন।