নেস্টেড লিস্ট (ম্যাট্রিক্স) কে প্রতিটি সারির সর্বোচ্চ মান (max) অনুযায়ী সাজানোর জন্য কাস্টম কি ফাংশন এবং max() বিল্ট-ইন ফাংশন ব্যবহার করা হয়।
উদাহরণ
def row_max(row):
"""সারির সর্বোচ্চ মান ফেরত দেয়"""
return max(row)
my_list = [[15, 27, 18], [39, 20, 13], [13, 15, 56], [43, 13, 25]]
print("মূল ম্যাট্রিক্স:")
for row in my_list:
print(f" {row} → max: {row_max(row)}")
# সর্বোচ্চ মান অনুযায়ী ডিসেন্ডিং সর্ট (reverse=True)
my_list.sort(key=row_max, reverse=True)
print("\nসাজানো ম্যাট্রিক্স (সর্বোচ্চ মান অনুযায়ী ডিসেন্ডিং):")
for row in my_list:
print(" ", row)
আউটপুট
মূল ম্যাট্রিক্স:
[15, 27, 18] → max: 27
[39, 20, 13] → max: 39
[13, 15, 56] → max: 56
[43, 13, 25] → max: 43
সাজানো ম্যাট্রিক্স (সর্বোচ্চ মান অনুযায়ী ডিসেন্ডিং):
[13, 15, 56]
[43, 13, 25]
[39, 20, 13]
[15, 27, 18]
ল্যাম্বডা দিয়ে সংক্ষিপ্ত
my_list.sort(key=max, reverse=True)
# max ফাংশন সরাসরি কি হিসেবে কাজ করে
অন্যান্য সার্টিং ক্রাইটেরিয়া
# ন্যূনতম মান অনুযায়ী
my_list.sort(key=min)
# সারির যোগফল অনুযায়ী
my_list.sort(key=sum)
# সারির গড় অনুযায়ী
my_list.sort(key=lambda row: sum(row)/len(row))
# সারির দৈর্ঘ্য অনুযায়ী
my_list.sort(key=len)
Pandas-এ প্রয়োগ
import pandas as pd
df = pd.DataFrame(my_list)
df['row_max'] = df.max(axis=1)
df_sorted = df.sort_values('row_max', ascending=False).drop('row_max', axis=1)
Stable Sort নোট
Python-র sort() stable — একই কি वाले এলিমেন্টগুলোর النسبিক অর্ডার বদলায় না।