2009-12-03 16 views
6

मैंने प्रलेखन पढ़ा है लेकिन इसे पूरी तरह समझ में नहीं आता है।पायथन में एक स्ट्रिंग को कैसे विभाजित करें?

मैं समझता हूं कि मुझे स्ट्रिंग में किसी प्रकार का पहचानकर्ता होना चाहिए ताकि कार्य स्ट्रिंग को विभाजित करने के लिए कहां मिल सके (जब तक कि मैं वाक्य में पहली जगह को लक्षित नहीं कर सकता?)।

तो उदाहरण के लिए मैं कैसे विभाजित करूं: "Sico87 is an awful python developer" से "Sico87" और "is an awful Python developer"?

स्ट्रिंग्स को डेटाबेस से पुनर्प्राप्त किया जाता है (यदि इससे कोई फर्क पड़ता है)।

+1

आपका अतिरिक्त उचित नहीं है। कृपया एक नया प्रश्न पूछें। – SilentGhost

+1

यह कैसे उचित नहीं था? यह एक ही सवाल पूछ रहा था लेकिन कोड उदाहरणों के साथ? पैडेंटिक के बारे में बात करो! – Udders

+2

यह पैडेंट्री नहीं है।StackOverflow ठीक से उपयोगी है क्योंकि अलग-अलग प्रश्न अलग-अलग होते हैं, इसलिए इस सटीक प्रश्न के अच्छे उत्तर शीर्ष पर तैरते हैं। जो भी टेम्पलेटिंग सिस्टम आप उपयोग कर रहे हैं उसमें पाइथन का उपयोग करना स्ट्रिंग को विभाजित करने के लिए बहुत अधिक ऑर्थोगोनल है। –

उत्तर

14

partition(' ') का उपयोग करें जो हमेशा टुपल में तीन आइटम लौटाता है - विभाजक, विभाजक, और उसके बाद बिट्स तक पहली बिट तक। लागू नहीं होने वाले टुपल में स्लॉट अभी भी खाली हैं, बस खाली तार होने के लिए सेट हैं।

उदाहरण: "Sico87 is an awful python developer".partition(' ') रिटर्न ["Sico87"," ","is an awful python developer"]

"Sico87 is an awful python developer".partition(' ')[0] रिटर्न "Sico87"

एक वैकल्पिक, जटिल काम रास्ता split(' ',1) जो similiarly काम करता है का उपयोग करना है, लेकिन एक चर आइटम्स की संख्या देता है। यह एक या दो वस्तुओं का एक झुकाव वापस कर देगा, पहला आइटम पहला शब्द होता है जब तक कि डिलीमीटर नहीं होता है और दूसरा स्ट्रिंग बाकी होता है (यदि कोई है तो)।

+2

'maxsplit' तर्क – abyx

+1

thx abyx का गलत उपयोग, आपने अपनी टिप्पणी जोड़ने के दौरान इसे देखा और ठीक किया :) – Will

+1

मुझे नहीं पता कि मैक्सप्लिट के साथ विभाजित कहूंगा कि यह ट्रिकियर है, यह सिर्फ काम नहीं कर रहा है। मैं इस तरह के मामलों के लिए विभाजन + tuple unpacking का उपयोग करने के साथ मजबूत समझौते में हूँ; यह संक्षिप्त और सुसंगत है। –

19

तारों पर split विधि का उपयोग करें:

>>> "Sico87 is an awful python developer".split(' ', 1) 
['Sico87', 'is an awful python developer'] 

यह कैसे काम करता:

  1. हर स्ट्रिंग एक वस्तु है। स्ट्रिंग ऑब्जेक्ट्स में उन पर कुछ निश्चित विधियां हैं, जैसे split इस मामले में। आप उन्हें obj.<methodname>(<arguments>) का उपयोग करके कॉल करते हैं।
  2. split पर पहला तर्क वह वर्ण है जो अलग-अलग सबस्ट्रिंग को अलग करता है। इस मामले में यह एक जगह है, ' '
  3. दूसरा तर्क यह है कि विभाजन को कितनी बार किया जाना चाहिए। आपके मामले में 1 है। संभव के रूप में अक्सर इस दूसरा तर्क बाहर छोड़कर लागू होता है विभाजन:

    >>> "Sico87 is an awful python developer".split(' ') 
    ['Sico87', 'is', 'an', 'awful', 'python', 'developer'] 
    
बेशक

तुम भी एक सूची के बजाय अलग-अलग वैरिएबल में सबस्ट्रिंग स्टोर कर सकते हैं:

>>> a, b = "Sico87 is an awful python developer".split(' ', 1) 
>>> a 
'Sico87' 
>>> b 
'is an awful python developer' 

लेकिन टिप्पणी है कि इससे कुछ इनपुट में रिक्त स्थान नहीं होते हैं:

>>> a, b = "string_without_spaces".split(' ', 1) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: need more than 1 value to unpack 
+0

स्प्लिट फ़ंक्शन को समझाने का धन्यवाद अच्छा तरीका – user765443

संबंधित मुद्दे

 संबंधित मुद्दे