আমাদের এমন একটি দৃশ্য রয়েছে যেখানে আমাদের বিভিন্ন দৈর্ঘ্যের অনেকগুলি শব্দ ধারণকারী তালিকা থেকে শীর্ষ n দীর্ঘতম শব্দ বাছাই করতে হবে। এই নিবন্ধে আমরা এটি অর্জনের জন্য বিভিন্ন পন্থা দেখব।
count() এবং sorted()
সহআমরা প্রথমে তালিকার উপাদানগুলিকে বিপরীত ক্রমে সাজাই যাতে তালিকার শুরুতে দীর্ঘতম শব্দ পাওয়া যায়। তারপর প্রতিটি শব্দের দৈর্ঘ্য খুঁজে বের করুন এবং একটি চলকের সাথে গণনার ফলাফল যোগ করুন। অবশেষে আমাদের প্রয়োজনীয় দীর্ঘতম শব্দগুলির একটি স্লাইস নিন।
উদাহরণ
itertools থেকে কাউন্টডেফ লংওয়ার্ড(l, x):c =count() রিটার্ন সাজানো (l, key=lambda i:(len(i), next(c)), reverse=True)[:x]listA =['আর্থ','মুনশাইন','অরোরা','স্নোফ্লেক্স','সানশাইন']n =2print(longwords(listA, n))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
['স্নোফ্লেক্স', 'মুনশাইন']
জিপ এবং গণনা সহ
এই পদ্ধতিতে আমরা তালিকার প্রতিটি উপাদান তালিকাভুক্ত করতে গণনা ব্যবহার করি এবং তারপর গণনা পেতে সাজানো এবং জিপ ফাংশন প্রয়োগ করি। নেতিবাচক দৈর্ঘ্যের মানগুলি সাজানোর বিপরীত ক্রম নির্দেশ করে এবং অবশেষে আমরা প্রয়োজনীয় সংখ্যক গণনাকে স্লাইস করি।
উদাহরণ
def longwords(l, x):idx, words =zip(*sorted(enumerate(l), key =lambda i:(-len(i[1]), -i[0]))[:x ফেরত তালিকাআউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
['স্নোফ্লেক্স', 'মুনশাইন']