কম্পিউটার

পাইথনে একটি তালিকায় বস্তুগুলি কীভাবে সাজানো যায়?


ints, floats, স্ট্রিং, অক্ষর বা __cmp__ পদ্ধতি প্রয়োগ করেছে এমন অন্য যেকোন শ্রেণীর তালিকা বাছাই করতে শুধুমাত্র তালিকায় সর্ট কল করে সাজানো যেতে পারে। আপনি যদি তালিকাটিকে বিপরীত ক্রমে বাছাই করতে চান (অবরোহণ), শুধু বিপরীত প্যারামিটারেও পাস করুন।

উদাহরণ

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]

যেহেতু টিপলগুলি অপরিবর্তনীয়, তাই তাদের ইন-প্লেস সর্ট ফাংশন নেই যা সরাসরি তাদের উপর কল করা যেতে পারে। আপনাকে সাজানো ফাংশন ব্যবহার করতে হবে, যা একটি সাজানো তালিকা প্রদান করে। আপনি যদি তালিকাটি জায়গায় সাজাতে না চান তবে তালিকা ক্লাস পদ্ধতি সাজানোর জায়গায় সাজানো ব্যবহার করুন।

উদাহরণ

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__ পদ্ধতি প্রয়োগ না করে অবজেক্টের একটি তালিকা থাকে, তাহলে আপনি কীভাবে 2টি উপাদানের তুলনা করবেন তা নির্দিষ্ট করতে কী আর্গুমেন্ট ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনার একটি তালিকায় অভিধান থাকে এবং একটি কী আকারের উপর ভিত্তি করে সেগুলি সাজাতে চান, তাহলে আপনি নিম্নলিখিতগুলি করতে পারেন:

উদাহরণ

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. পাইথনে স্ট্রিংগুলির তালিকা কীভাবে বাছাই করবেন?