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