2015-04-05 7 views
11

पाइथन में उपयोग करने का प्रयास करते समय मुझे एक त्रुटि है।यूनिकोड स्ट्रिंग समकक्ष

s = u"some utf8 words" 
k = u"one utf8 word" 

if s.contains(k): 
    print "contains" 

मैं एक ही परिणाम कैसे प्राप्त करूं?

सामान्य ASCII स्ट्रिंग

s = "haha i am going home" 
k = "haha" 

if s.contains(k): 
    print "contains" 

मैं अजगर 2.7.x

+0

त्रुटि क्या है करना चाहते हैं? – rmuc8

+0

'यू' ... 'ऑब्जेक्ट्स ** ** ** * यूटीएफ -8 शब्द * नहीं हैं। वे यूनिकोड ऑब्जेक्ट्स हैं, जबकि यूटीएफ -8 * यूनिकोड मानों का प्रतिनिधित्व करने वाला डेटा एन्कोड किया गया है *। यह स्क्रीन पर एक छवि प्रदर्शित करने और इसे पीएनजी या जेपीईजी फ़ाइल, या 'डेटाटाइम' ऑब्जेक्ट में एन्कोड करने और ऐसी ऑब्जेक्ट्स को आईएसओ -8601 स्ट्रिंग में एन्कोड करने के लिए तुलनीय है। एन्कोडेड डेटा और मान संबंधित हैं, लेकिन एक ही बात नहीं है। –

उत्तर

16

ascii और UTF8 तार के लिए एक ही:

if k in s: 
    print "contains" 

नहीं है या तो ascii या uft8 तार पर कोई :

>>> "strrtinggg".contains 
AttributeError: 'str' object has no attribute 'contains' 

क्या आप contains के बजाय का उपयोग कर सकते find या है index:

if k.find(s) > -1: 
    print "contains" 

या

try: 
    k.index(s) 
except ValueError: 
    pass # ValueError: substring not found 
else: 
    print "contains" 

लेकिन निश्चित रूप से, in ऑपरेटर, जाने का रास्ता है यह बहुत ज्यादा सुंदर है।

6

उपयोग कर रहा हूँ वहाँ str और unicode बीच कोई अंतर नहीं के साथ उदाहरण।

print u"ábc" in u"some ábc" 
print "abc" in "some abc" 

मूल रूप से वही है।

4

स्ट्रिंग्स में "युक्त" विशेषता नहीं है।

s = "haha i am going home" 
s_new = s.split(' ') 
k = "haha" 

if k in s_new: 
    print "contains" 

मुझे लगता है कि आप को प्राप्त करने के लिए इस

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