इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो सूची से समान उपस्ट्रिंग को समूहित करता है। आइए इसे और अधिक स्पष्ट रूप से समझने के लिए एक उदाहरण देखें।
इनपुट
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 मेथड का उपयोग करने जा रहे हैं। groupby मेथड सभी समान स्ट्रिंग को एक इटर ऑब्जेक्ट में समूहित करेगा। दी गई सूची के लिए हम स्ट्रिंग को - से विभाजित करते हैं और स्ट्रिंग के पहले भाग को groupby मेथड में पास करते हैं।
इस समस्या को हल करने में शामिल चरण देखते हैं।
- स्ट्रिंग की सूची आरंभ करें।
- itertools मॉड्यूल आयात करें।
- एक खाली सूची आरंभ करें।
- अब, itertools.groupby मेथड को स्ट्रिंग्स और एक लैम्ब्डा फ़ंक्शन पास करें।
- लैम्ब्डा फ़ंक्शन को - से विभाजित करने के बाद स्ट्रिंग का पहला भाग वापस करना चाहिए।
- groupby मेथड तत्व और उसके समूह के साथ टपल्स की सूची लौटाएगा।
- हर पुनरावृत्ति में, समान तत्वों के समूह को सूची में बदलें।
- सूची को खाली सूची में जोड़ें।
- परिणाम प्रिंट करें।
उदाहरण
# itertools मॉड्यूल आयात करना
import itertools
# स्ट्रिंग्स आरंभ करना
strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1']
# खाली सूची
result = []
# इटरेटर
# लैम्ब्डा फ़ंक्शन स्ट्रिंग से पहला भाग वापस करेगा
iterator = itertools.groupby(strings, lambda string: string.split('-')[0])
# परिणाम पर पुनरावृति
# तत्व और उसका समूह
for element, group in iterator:
# समूह को सूची में बदलकर जोड़ना
result.append(list(group))
# परिणाम प्रिंट करना
print(result)
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा।
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ['python-1', 'python-2'], ['javascript-1']]
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई संदेह हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।