unicode字符串等效于contains

ace*_*ner 20 python string unicode

尝试在python中使用contains时出错.

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

if s.contains(k):
    print "contains" 
Run Code Online (Sandbox Code Playgroud)

我如何实现相同的结果?

使用普通ASCII字符串的示例

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

if s.contains(k):
    print "contains"
Run Code Online (Sandbox Code Playgroud)

我使用的是python 2.7.x.

frn*_*nhr 36

ascii和utf8字符串相同:

if k in s:
    print "contains" 
Run Code Online (Sandbox Code Playgroud)

contains()ascii或uft8字符串都没有:

>>> "strrtinggg".contains
AttributeError: 'str' object has no attribute 'contains'
Run Code Online (Sandbox Code Playgroud)

你可以使用,而不是contains为find或index:

if k.find(s) > -1:
    print "contains"
Run Code Online (Sandbox Code Playgroud)

要么

try:
    k.index(s)
except ValueError:
    pass  # ValueError: substring not found
else:
    print "contains"
Run Code Online (Sandbox Code Playgroud)

但当然,in操作员是要走的路,它更优雅.


Dan*_*iel 8

str和之间没有区别unicode.

print u"ábc" in u"some ábc"
print "abc" in "some abc"
Run Code Online (Sandbox Code Playgroud)

基本相同.


Aja*_*jay 5

字符串没有“包含”属性。

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

if k in s_new:
    print "contains"
Run Code Online (Sandbox Code Playgroud)

我想你想实现这个目标