কম্পিউটার টিউটোরিয়াল

পাইথনে দिये गये লিস্ট থেকে k সংখ্যক সবচেয়ে লম্বা শব্দ বের করুন


সমস্যা বিবরণ

একটি শব্দের লিস্ট দেওয়া আছে। সেখান থেকে দৈর্ঘ্য অনুযায়ী শীর্ষ kটি সবচেয়ে লম্বা শব্দ বের করতে হবে।

পদ্ধতি ১: count() এবং sorted() ব্যবহার

sorted(l, key=lambda i: (len(i), next(c)), reverse=True)[:x] দিয়ে সর্ট করে স্লাইস করুন।

from itertools import count
def longwords(l, x):
    c = count()
    return sorted(l, key=lambda i: (len(i), next(c)), reverse=True)[:x]

listA = ['Earth', 'Moonshine', 'Aurora', 'Snowflakes', 'Sunshine']
n = 2
print(longwords(listA, n))  # ['Snowflakes', 'Moonshine']

পদ্ধতি ২: zip() এবং enumerate() ব্যবহার

enumerate দিয়ে ইনডেক্স নিন, sorted দিয়ে নেগেটিভ লেন্থ দিয়ে রিভার্স সর্ট করুন, zip দিয়ে আলাদা করুন।

def longwords(l, x):
    idx, words = zip(*sorted(enumerate(l), key=lambda i: (-len(i[1]), -i[0]))[:x])
    return list(words)

listA = ['Earth', 'Moonshine', 'Aurora', 'Snowflakes', 'Sunshine']
n = 2
print(longwords(listA, n))  # ['Snowflakes', 'Moonshine']
  1. পাইথনে ইন্ডেক্স ব্যবহার করে লিস্টের এলিমেন্ট বের করুন

  2. পাইথনে স্ট্রিং-এর শব্দগুলো উল্টে দেওয়া

  3. পাইথনে লিস্টের আকার বের করা

  4. পাইথনে লিস্টের গড় (Average) বের করা