Unicode string эквивалент содержать

У меня есть ошибка при попытке использования содержать в python.

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"

Я использую python 2.7.x

Ответ 1

То же самое для строк ascii и utf8:

if k in s:
    print "contains" 

Нет ни одного 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 - путь, он намного более изящный.

Ответ 2

Нет разницы между str и unicode.

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

в основном то же самое.

Ответ 3

Строки не имеют атрибута "содержать".

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

if k in s_new:
    print "contains"

Я думаю, вы хотите достичь этого