मान लीजिए कि हमारे पास सूचियों की एक सूची है जिसमें प्रत्येक उपन्यास में दो तत्व हैं। सूची के कई अन्य विषयों में प्रत्येक उपन्यास का एक तत्व आम है। हमें एक अंतिम सूची बनाने की आवश्यकता है जो सामान्य तत्वों द्वारा समूहीकृत उप-सूचियों को दिखाएगी।
सेट और मैप के साथ
दी गई सूची में पहला तत्व एक स्ट्रिंग है और दूसरा तत्व एक संख्या है। इसलिए हम एक अस्थायी सूची बनाते हैं जिसमें प्रत्येक उपन्यास का दूसरा तत्व होगा। फिर हम तुलना करते हैं कि अस्थायी सूची में प्रत्येक तत्व के साथ सबलिस्ट है और डिजाइनर उन्हें समूहित करने के लिए अनुसरण करते हैं।
उदाहरण
listA = [['Mon', 2], ['Tue', 3], ['Wed', 3], ["Thu", 1], ['Fri', 2], ['Sat', 3], ['Sun', 1]] # With set and map temp = set(map(lambda i: i[1], listA)) res = [[j[0] for j in listA if j[1] == i] for i in temp] # Result print("The list with grouped elements is : \n" ,res)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The list with grouped elements is : [['Thu', 'Sun'], ['Mon', 'Fri'], ['Tue', 'Wed', 'Sat']]
ग्रुपबाय और आइटमगेटर के साथ
प्रत्येक सबलिस्ट का दूसरा तत्व प्राप्त करने के लिए आइटमगेटर फ़ंक्शन का उपयोग किया जाता है। फिर आइटमगेटर फ़ंक्शन के परिणाम के आधार पर फ़ंक्शन द्वारा एक समूह लागू किया जाता है।
उदाहरण
from itertools import groupby from operator import itemgetter listA = [['Mon', 2], ['Tue', 3], ['Wed', 3],["Thu", 1], ['Fri', 2], ['Sat', 3],['Sun', 1]] # With groupby listA.sort(key = itemgetter(1)) groups = groupby(listA, itemgetter(1)) res = [[i[0] for i in val] for (key, val) in groups] # Result print("The list with grouped elements is : \n" ,res)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The list with grouped elements is : [['Thu', 'Sun'], ['Mon', 'Fri'], ['Tue', 'Wed', 'Sat']]
डिफॉल्टडिक्ट के साथ
हम उपसूची के दूसरे तत्वों को शब्दकोश की कुंजी के रूप में प्राप्त करने के लिए डिफॉल्टडिक्ट फ़ंक्शन लागू करते हैं। फिर परिणामी सूची में हम सबलिस्ट के पहले तत्व से मूल्यों को जोड़ते हैं।
उदाहरण
import collections listA = [['Mon', 2], ['Tue', 3], ['Wed', 3],["Thu", 1], ['Fri', 2], ['Sat', 3],['Sun', 1]] # With defaultdict res = collections.defaultdict(list) for val in listA: res[val[1]].append(val[0]) # Result print("The list with grouped elements is : \n" ,res)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The list with grouped elements is : defaultdict(<class 'list'>, {2: ['Mon', 'Fri'], 3: ['Tue', 'Wed', 'Sat'], 1: ['Thu', 'Sun']})