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"
Я думаю, вы хотите достичь этого