हमारे पास tuples की एक सूची है। इसमें हमें शीर्ष k बारंबारता तत्व को खोजने की आवश्यकता होती है। यदि k 3 है तो हमें सूची के अंदर टुपल्स से शीर्ष तीन तत्वों को खोजने की आवश्यकता है।
डिफॉल्टडिक्ट के साथ
हम डिफॉल्टडिक्ट का उपयोग करके तत्वों को एक डिक्शनरी कंटेनर में डालते हैं। फिर केवल उन तत्वों को खोजें जो उस शीर्ष k शर्तों को पूरा करते हैं।
उदाहरण
import collections from operator import itemgetter from itertools import chain # Input list initialization listA = [[('Mon', 126)], [('Tue', 768)],[('Wed', 512)], [('Thu', 13)],[('Fri', 341)]] # set K K = 3 #Given list print("Given list:\n",listA) print("Check value:\n",K) # Using defaultdict dict_ = collections.defaultdict(list) new_list = list(chain.from_iterable(listA)) for elem in new_list: dict_[elem[0]].append(elem[1]) res = {k: sum(v) for k, v in dict_.items()} # Using sorted res = sorted(res.items(), key=itemgetter(1), reverse=True)[0:K] # Output print("Top 3 elements are:\n", res)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Given list: [[('Mon', 126)], [('Tue', 768)], [('Wed', 512)], [('Thu', 13)], [('Fri', 341)]] Check value: 3 Top 3 elements are: [('Tue', 768), ('Wed', 512), ('Fri', 341)]
क्रमबद्ध और पुनरावर्तक के साथ
इस दृष्टिकोण में हम आइटमगेटर फ़ंक्शन का उपयोग करते हैं, लेकिन इसे 0 से K तक की सीमा का उल्लेख करके सॉर्ट किए गए फ़ंक्शन के भीतर लागू करते हैं।
उदाहरण
from operator import itemgetter from itertools import chain # Input list initialization listA = [[('Mon', 126)], [('Tue', 768)],[('Wed', 512)], [('Thu', 13)],[('Fri', 341)]] # set K K = 3 #Given list print("Given list:\n",listA) print("Check value:\n",K) # Using sorted res = sorted(list(chain.from_iterable(listA)), key = itemgetter(1), reverse = True)[0:K] # Output print("Top 3 elements are:\n", res)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Given list: [[('Mon', 126)], [('Tue', 768)], [('Wed', 512)], [('Thu', 13)], [('Fri', 341)]] Check value: 3 Top 3 elements are: [('Tue', 768), ('Wed', 512), ('Fri', 341)]