ভূমিকা
একটি টাপল তালিকাকে প্রতিটি টাপলের সব সংখ্যার ডিজিট সংখ্যায় যোগফল (টোটাল ডিজিট) অনুযায়ী সাজানো যেতে পারে। এজন্য sorted() ফাংশনের key প্যারামিটারে ল্যাম্বডা ফাংশন ব্যবহার করা হয়।
উদাহরণ কোড
my_list = [(11, 23, 45, 678), (34, 67), (653,), (78, 99, 23, 45), (67, 43)]
print("The list is :")
print(my_list)
my_result = sorted(my_list, key=lambda tup: sum([len(str(ele)) for ele in tup]))
print("The sorted tuples are")
print(my_result)
আউটপুট
The list is : [(11, 23, 45, 678), (34, 67), (653,), (78, 99, 23, 45), (67, 43)] The sorted tuples are [(653,), (34, 67), (67, 43), (78, 99, 23, 45), (11, 23, 45, 678)]
ব্যাখ্যা
lambda tup: sum([len(str(ele)) for ele in tup]): প্রতিটি টাপল (tup) এর জন্য, প্রতিটি এলিমেন্টকে স্ট্রিংয়ে কনভার্ট করে (str(ele)), তার দৈর্ঘ্য (len) নেয় (ডিজিট সংখ্যা), এবং সেগুলো যোগ করে (sum)।টাপলগুলো এবং তাদের টোটাল ডিজিট:
(11, 23, 45, 678): 2+2+2+3 = 9(34, 67): 2+2 = 4(653,): 3 = 3(78, 99, 23, 45): 2+2+2+2 = 8(67, 43): 2+2 = 4
সাজানো ক্রম: 3, 4, 4, 8, 9। (টাই ব্রেকার: původি অর্ডার রক্ষা হয়, stable sort)।
উন্নতি
জেনারেটর এক্সপ্রেশন ব্যবহার করলে মেমোরি দক্ষ: sum(len(str(ele)) for ele in tup)।