हमारे पास एक परिदृश्य है जहां हमें कई शब्दों वाली सूची से शीर्ष n सबसे लंबे शब्द चुनने हैं। इस लेख में हम इसे प्राप्त करने के विभिन्न दृष्टिकोण देखेंगे।
count() और sorted() के साथ
हम पहले सूची के तत्वों को रिवर्स क्रम में सॉर्ट करते हैं ताकि सबसे लंबे शब्द सूची की शुरुआत में उपलब्ध हों। फिर प्रत्येक शब्द की लंबाई ढूंढें और काउंट के परिणाम को एक चर में जोड़ें। अंत में आवश्यक संख्या में सबसे लंबे शब्दों का एक स्लाइस लें।
उदाहरण
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 का उपयोग करते हैं और फिर आवश्यक संख्या प्राप्त करने के लिए सॉर्टेड और 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']