স্ট্রিং লিস্টকে প্রতিটি স্ট্রিংয়ের শেষ ক্যারেক্টার (rear character) অনুযায়ী সাজানোর জন্য কাস্টম কি ফাংশন এবং নেগেটিভ ইন্ডেক্সিং ব্যবহার করা হয়।
উদাহরণ
def get_last_char(s):
"""স্ট্রিংয়ের শেষ ক্যারেক্টার ফেরত দেয়"""
return s[-1]
my_list = ['python', 'is', 'fun', 'to', 'learn']
print("মূল লিস্ট:", my_list)
# কাস্টম কি দিয়ে সর্ট
my_list.sort(key=get_last_char)
print("শেষ ক্যারেক্টার অনুযায়ী সাজানো লিস্ট:")
print(my_list)
আউটপুট
মূল লিস্ট: ['python', 'is', 'fun', 'to', 'learn']
শেষ ক্যারেক্টার অনুযায়ী সাজানো লিস্ট: ['python', 'fun', 'learn', 'to', 'is']
ব্যাখ্যা
| শব্দ | শেষ ক্যারেক্টার | অ্যাসকি ভ্যালু |
|---|---|---|
| python | n | 110 |
| fun | n | 110 |
| learn | n | 110 |
| to | o | 111 |
| is | s | 115 |
'n' (110) < 'o' (111) < 's' (115) — তাই python, fun, learn আগে আসে। টাই ব্রেকের জন্য মূল অর্ডার রক্ষা হয় (stable sort)।
ল্যাম্বডা দিয়ে সংক্ষিপ্ত
my_list.sort(key=lambda s: s[-1])
# অথবা
sorted_list = sorted(my_list, key=lambda s: s[-1])
উল্টা ক্রম (Reverse)
my_list.sort(key=lambda s: s[-1], reverse=True)
# ['is', 'to', 'python', 'fun', 'learn']
একাধিক ক্যারেক্টার অনুযায়ী (উদা: শেষ ২টা)
my_list.sort(key=lambda s: s[-2:]) # শেষ ২ ক্যারেক্টার