इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो एक सूची से समान सबस्ट्रिंग को समूहित करता है। आइए इसे और स्पष्ट रूप से समझने के लिए एक उदाहरण देखें।
इनपुट
strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1']
आउटपुट
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ['python-1', 'python-2'], ['javascript-1']]
हम ग्रुपबाय . का उपयोग करने जा रहे हैं itertools . से विधि समस्या को हल करने के लिए मॉड्यूल। समूह द्वारा विधि सभी समान स्ट्रिंग को एक पुनरावृत्त वस्तु में समूहित करेगी। दी गई सूची के लिए हमने स्ट्रिंग को - से विभाजित किया है और स्ट्रिंग के पहले भाग को groupby में पास कर दिया है विधि।
आइए इस समस्या को हल करने में शामिल चरणों को देखें।
- स्ट्रिंग की सूची प्रारंभ करें।
- itertools मॉड्यूल आयात करें।
- खाली सूची प्रारंभ करें।
- अब, स्ट्रिंग्स और लैम्ब्डा फ़ंक्शन को itertools.groupby को पास करें विधि।
- लैम्ब्डा फ़ंक्शन को स्ट्रिंग के पहले भाग को − . से विभाजित करने के बाद वापस करना चाहिए
- द ग्रुपबाय विधि तत्व और उसके समूह के साथ टुपल्स की एक सूची लौटाएगी।
- हर पुनरावृत्ति में, समान तत्वों के समूह को एक सूची में बदलें।
- सूची को खाली सूची में जोड़ें।
- परिणाम प्रिंट करें।
उदाहरण
# importing the itertools module import itertools # initializing the strings strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1'] # empty list result = [] # iterator # lambda function will return first part from the string iterator = itertools.groupby(strings, lambda string: string.split('-')[0]) # iterating over the result # element and its group for element, group in iterator: # appending the group by converting it into a list result.append(list(group)) # printing the result print(result)
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ython-1', 'python-2'], ['javascript-1']]
निष्कर्ष
यदि आपको ट्यूटोरियल में कोई संदेह है, तो उनका टिप्पणी अनुभाग में उल्लेख करें।