अजगर में एक सीमांकक द्वारा एक स्ट्रिंग को विभाजित करें


195

इस स्ट्रिंग को कैसे विभाजित करें जहां __सीमांकक है

MATCHES__STRING

का आउटपुट प्राप्त करने के लिए ['MATCHES', 'STRING']?



8
यह अजगर मानक दस्तावेजों को पढ़ने के लायक है और कुछ कार्यक्रमों को समझने की कोशिश कर रहा है जो दूसरों ने पायथन की मूल बातें समझाना शुरू कर दिया है। भाषा सीखने के लिए अभ्यास और नकल / संशोधन महान उपकरण हैं।
टोनी वेजालिनेन

जवाबों:


327

आप str.splitफ़ंक्शन का उपयोग कर सकते हैं :string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

1
मैं सोच रहा था, पहले उदाहरण (केवल विभाजन का उपयोग करके) और दूसरे उदाहरण (लूप के लिए) के बीच क्या अंतर है?
EndenDragon

4
@EndenDragon लूप के लिए स्वचालित रूप से लागू होगा x.strip()और दोनों तरफ व्हॉट्सएप के बिना मैचों की सूची लौटाएगा। दुष्ट का विस्तार में वर्णन।
सेबास्टियन वर्कामेन

अरे, चूँकि यह एक बहुत लोकप्रिय प्रश्न है, मैंने इसे केवल 1 विशिष्ट प्रश्न पूछने के लिए संपादित किया और सीमांकक के आस-पास के रिक्त स्थान के साथ भाग को हटा दिया क्योंकि यह स्पष्ट नहीं था कि ओपी भी क्या होने की उम्मीद कर रहा था (क्योंकि वहाँ एक प्रश्न कभी नहीं था प्रश्न)। मुझे लगता है कि प्रश्न (और उत्तर) इस तरह से अधिक उपयोगी हैं, लेकिन यदि आप असहमत हैं तो सभी संपादनों को रोलबैक करने के लिए स्वतंत्र महसूस करें।
अरन-फे

4

आप csvमॉड्यूल में दिलचस्पी ले सकते हैं , जो अल्पविराम से अलग की गई फ़ाइलों के लिए डिज़ाइन किया गया है, लेकिन कस्टम सीमांकक का उपयोग करने के लिए आसानी से संशोधित किया जा सकता है।

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...

1

जब आपके पास स्ट्रिंग में दो या अधिक (नीचे तीन उदाहरण में तत्व हैं) तत्व हैं, तो आप इन वस्तुओं को अलग करने के लिए अल्पविराम का उपयोग कर सकते हैं:

date, time, event_name = ev.get_text(separator='@').split("@")

कोड की इस लाइन के बाद, तीन वेरिएबल्स में वैरिएबल ईव के तीन हिस्सों से वैल्यूज होंगी

इसलिए, यदि वैरिएबल ev में यह स्ट्रिंग है और हम विभाजक '@' लागू करते हैं:

सा।, 23. मर्ज़ @ 19: 00 @ क्लेवियर + ऑरचेस्टर: SPEZIAL

फिर, विभाजन ऑपरेशन के बाद चर

  • दिनांक का मान "Sa., 23 होगा। März"
  • समय का मान "19:00" होगा
  • event_name का मान "Klavier + Orchester: SPEZIAL" होगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.