কম্পিউটার টিউটোরিয়াল

পাইথনে লিস্টের অবজেক্টগুলো সর্ট করার পদ্ধতি


ইন্ট, ফ্লোট, স্ট্রিং, চ্যার বা __cmp__ মেথড ইমপ্লিমেন্ট করা যেকোনো ক্লাসের লিস্ট সর্ট করা যাবে শুধু লিস্টের ওপর sort কল করে। আপনি যদি লিস্টকে রিভার্স অর্ডার (ডিসেন্ডিং) সর্ট করতে চান, তবে reverse প্যারামিটারও পাস করুন।

উদাহরণ

my_list = [1, 5, 2, 6, 0] my_list.sort() print(my_list) my_list.sort(reverse=True) print(my_list)

আউটপুট

এটি আউটপুট দেবে -

[0, 1, 2, 5, 6] [6, 5, 2, 1, 0]

যেহেতু টাপল ইমিউটেবল, সেগুলোর ইন-প্লেস সর্ট ফাংশন নেই যা সরাসরি সেটিতে কল করা যায়। আপনাকে sorted ফাংশন ব্যবহার করতে হবে, যা একটি সর্টেড লিস্ট রিটার্ন করে। আপনি যদি ইন-প্লেস সর্ট না চান, তবে লিস্ট ক্লাস মেথড sort-এর বদলে sorted ব্যবহার করুন।

উদাহরণ

my_list = [1, 5, 2, 6, 0] print(sorted(my_list)) print(sorted(my_list, reverse=True))

আউটপুট

এটি আউটপুট দেবে -

[0, 1, 2, 5, 6] [6, 5, 2, 1, 0]

আপনার কাছে যদি অবজেক্টের লিস্ট থাকে যাদের ক্লাসে __cmp__ মেথড ইমপ্লিমেন্টেড নেই, তবে আপনি key আর্গুমেন্ট ব্যবহার করতে পারেন কীভাবে ২টি এলিমেন্ট তুলনা করা হবে সেটি স্পেসিফাই করতে। উদাহরণস্বরূপ, আপনার কাছে ডিকশনারির লিস্ট থাকে এবং আপনি সেগুলো 'size' কী অনুযায়ী সর্ট করতে চান, তবে আপনি নিচের মত করতে পারেন:

উদাহরণ

def get_my_key(obj):   return obj['size'] my_list = [{'name': "foo", 'size': 5}, {'name': "bar", 'size': 3}, {'name': "baz", 'size': 7}] my_list.sort(key=get_my_key) print(my_list)

আউটপুট

এটি আউটপুট দেবে -

[{'name': 'bar', 'size': 3}, {'name': 'foo', 'size': 5}, {'name': 'baz', 'size': 7}]

এটি প্রতিটি এন্ট্রির জন্য স্পেসিফাইড ফাংশন কল করবে এবং প্রতিটি এন্ট্রির এই ভ্যালুর ভিত্তিতে সর্ট করবে। আপনি একই ফাংশন একটি অবজেক্টের জন্যও স্পেসিফাই করতে পারেন, অবজেক্টের একটি অ্যাট্রিবিউট রিটার্ন করে।


  1. পাইথনে লিস্টের অবজেক্টগুলো রিভার্স করার পদ্ধতি

  2. পাইথনে লিস্টে অবজেক্ট অ্যাপেন্ড করার পদ্ধতি

  3. পাইথনে লিস্টের আকার (সাইজ) জানার পদ্ধতি

  4. পাইথনে স্ট্রিংয়ের লিস্ট সর্ট করা