web-dev-qa-db-ja.com

含むUnicode文字列

Pythonでcontainを使用しようとするとエラーが発生します。

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

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

同じ結果を得るにはどうすればよいですか?

通常のASCII string

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

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

私はpython 2.7.xを使用しています

18
aceminer

Asciiおよびutf8文字列についても同じです:

_if k in s:
    print "contains" 
_

Asciiまたはuft8文字列にはcontains()はありません。

_>>> "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演算子を使用する方法があり、はるかにエレガントです。

33
frnhr

strunicodeの間に違いはありません。

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

基本的に同じです。

8
Daniel

文字列には「含む」属性はありません。

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

if k in s_new:
    print "contains"

これを達成したいと思う

5
Ajay