Python प्रोग्रामिंग में कई सीमांककों के आधार पर स्ट्रिंग्स को विभाजित करना एक सामान्य कार्य है। यह लेख इस समस्या को कुशल और मज़बूत तरीकों से संभालने के तरीके बताता है, विभिन्न परिदृश्यों के लिए समाधान प्रदान करता है।
विषय-सूची
- दो सीमांककों के साथ स्ट्रिंग्स को विभाजित करना
- कई सीमांककों के साथ स्ट्रिंग्स को विभाजित करना
- रिक्त स्थान और कई सीमांककों को संभालना
- वैकल्पिक तरीका: `split()` का पुनरावृति का उपयोग करना
दो सीमांककों के साथ स्ट्रिंग्स को विभाजित करना
आइए एक सरल उदाहरण से शुरुआत करते हैं: दो सीमांककों, जैसे ‘,’ और ‘;’ का उपयोग करके एक स्ट्रिंग को विभाजित करना।
my_string = "apple,banana;orange,grape;kiwi"
एक सीधा-सादा, हालांकि कम कुशल, तरीका अंतर्निहित split()
विधि के नेस्टेड कॉल को शामिल कर सकता है। हालाँकि, एक अधिक सुंदर और मज़बूत समाधान नियमित अभिव्यक्तियों का उपयोग करता है।
import re
my_string = "apple,banana;orange,grape;kiwi"
result = re.split(r"[,;]", my_string)
print(result) # आउटपुट: ['apple', 'banana', 'orange', 'grape', 'kiwi']
नियमित अभिव्यक्ति r"[,;]"
एक वर्ण समुच्चय को परिभाषित करती है जो ‘,’ या ‘;’ से मेल खाता है। re.split()
इन सीमांककों की प्रत्येक घटना पर स्ट्रिंग को कुशलतापूर्वक विभाजित करता है।
कई सीमांककों के साथ स्ट्रिंग्स को विभाजित करना
इसे अधिक सीमांककों को संभालने के लिए बढ़ाना सरल है: बस उन्हें वर्ग कोष्ठक के भीतर वर्ण समुच्चय में जोड़ें।
import re
my_string = "apple,banana;orange:grape;kiwi,mango"
result = re.split(r"[,;:]", my_string)
print(result) # आउटपुट: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']
यह दृष्टिकोण किसी भी संख्या में सीमांककों के लिए प्रभावी ढंग से स्केल करता है, जिससे यह एक बहुत ही लचीला समाधान बन जाता है।
रिक्त स्थान और कई सीमांककों को संभालना
रिक्त स्थान को सीमांकक के रूप में शामिल करने के लिए, हम नियमित अभिव्यक्ति में s+
(एक या अधिक रिक्त स्थान वाले वर्ण) जोड़ सकते हैं।
import re
my_string = "apple , banana ; orange : grape ; kiwi , mango"
result = re.split(r"[,;:s]+", my_string)
print(result) # आउटपुट: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']
+
क्वांटिफ़ायर यह सुनिश्चित करता है कि कई लगातार रिक्त स्थान वाले वर्णों को एकल सीमांकक के रूप में माना जाता है।
वैकल्पिक तरीका: `split()` का पुनरावृति का उपयोग करना
जबकि नियमित अभिव्यक्तियाँ एक सुंदर समाधान प्रदान करती हैं, एक वैकल्पिक तरीका अंतर्निहित split()
विधि का पुनरावृति का उपयोग करना शामिल है। यदि आप किसी भी कारण से नियमित अभिव्यक्तियों से बचना चाहते हैं, तो यह विधि उपयोगी हो सकती है।
my_string = "apple,banana;orange:grape;kiwi,mango"
delimiters = [',', ';', ':']
for delimiter in delimiters:
my_string = my_string.replace(delimiter, ' ')
result = my_string.split()
print(result) # आउटपुट: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']
यह विधि प्रत्येक सीमांकक को एक रिक्त स्थान से बदल देती है और फिर रिक्त स्थान पर स्ट्रिंग को विभाजित करती है। यह नियमित अभिव्यक्ति दृष्टिकोण की तुलना में कम संक्षिप्त है, लेकिन नियमित अभिव्यक्तियों से कम परिचित लोगों के लिए इसे समझना आसान हो सकता है।
संक्षेप में, नियमित अभिव्यक्तियाँ Python में कई सीमांककों के आधार पर स्ट्रिंग्स को विभाजित करने के लिए एक शक्तिशाली और कुशल विधि प्रदान करती हैं। हालाँकि, अंतर्निहित split()
का उपयोग करके पुनरावृति दृष्टिकोण उन स्थितियों के लिए एक सरल विकल्प प्रदान करता है जहाँ नियमित अभिव्यक्तियाँ कम वांछनीय हो सकती हैं। सबसे अच्छी विधि चुनना आपकी विशिष्ट आवश्यकताओं और कोडिंग शैली पर निर्भर करता है।