2015-08-10 9 views
6

सफल हुआ है, मैं एक स्ट्रिंग "name:john" विभाजित कर रहा हूं और यह जांचना चाहता हूं कि विभाजन हुआ या नहीं। उस चेक को करने का सही तरीका क्या है?पायथन जांचें कि स्ट्रिंग स्प्लिट

एक त्वरित समाधान: (लेकिन शायद overkill)

name = "name:john" 
splitted = name.split(":") 
if len(splitted) > 1: 
    print "split" 

वहाँ की जांच करने का एक और अधिक व्यापक तरीका है?

+6

आपका रास्ता मेरे लिए ठीक दिखता है :-) – Kevin

+0

एकमात्र मामला यह विभाजित नहीं होगा जब '' 'स्ट्रिंग में नहीं है .. तो आप विभाजन से पहले जांच सकते हैं। Str.find (": ") ऐसा कुछ – vks

+0

@vks शायद कुछ 'कीवर्ड' को प्राथमिकता देना चाहिए। जब आपको इसकी आवश्यकता नहीं होती है तो आपको 'ढूंढने' की कोई ज़रूरत नहीं है। –

उत्तर

9

तुम भी EAFP दृष्टिकोण चुन सकते हैं: विभाजन, खोल और संभाल ValueError:

try: 
    key, value = name.split(":") 
except ValueError: 
    print "Failure" 
else: 
    print "Success" 
+2

मैं 'छोड़कर' के बाद 'else' ब्लॉक जोड़ूंगा, और 'try' block '' ''' ब्लॉक से 'प्रिंट" सफलता "' को ले जाऊंगा। – TigerhawkT3

+0

@ टाइगरहॉक टी 3 निश्चित रूप से समझ में आता है, अच्छा बिंदु, धन्यवाद। – alecxe

3

in ऑपरेंड का उपयोग क्यों नहीं करें? :

if ':' in name: 
    print "split" 

या यदि आप : पिछले और अंत चरित्र के बीच पूर्व निर्धारित करना चाहते हैं आप कर सकते हैं:

if ':' in name[1:-1]: 
    print "split" 
संबंधित मुद्दे