Python - 检查Word是否在字符串中

我正在使用Python v2,我试图找出你是否可以判断一个单词是否在字符串中。


我找到了一些关于识别单词是否在字符串中的信息 - 使用.find,但有没有办法做IF语句。我希望得到以下内容:


if string.find(word):

    print 'success'

谢谢你的帮助。


蛊毒传说
浏览 966回答 4
4回答

HUX布斯

出什么问题了:if word in mystring:    print 'success'

米琪卡哇伊

if 'seek' in 'those who seek shall find':&nbsp; &nbsp; print('Success!')但请记住,这匹配一系列字符,不一定是整个单词 - 例如,'word' in 'swordsmith'是真的。如果你只想匹配整个单词,你应该使用正则表达式:import redef findWholeWord(w):&nbsp; &nbsp; return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).searchfindWholeWord('seek')('those who seek shall find')&nbsp; &nbsp; # -> <match object>findWholeWord('word')('swordsmith')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# -> None

慕田峪7331174

如果您想知道整个单词是否在以空格分隔的单词列表中,只需使用:def contains_word(s, w):&nbsp; &nbsp; return (' ' + w + ' ') in (' ' + s + ' ')contains_word('the quick brown fox', 'brown')&nbsp; # Truecontains_word('the quick brown fox', 'row')&nbsp; &nbsp; # False这种优雅的方法也是最快的。与Hugh Bothwell和daSong的方法相比:>python -m timeit -s "def contains_word(s, w): return (' ' + w + ' ') in (' ' + s + ' ')" "contains_word('the quick brown fox', 'brown')"1000000 loops, best of 3: 0.351 usec per loop>python -m timeit -s "import re" -s "def contains_word(s, w): return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search(s)" "contains_word('the quick brown fox', 'brown')"100000 loops, best of 3: 2.38 usec per loop>python -m timeit -s "def contains_word(s, w): return s.startswith(w + ' ') or s.endswith(' ' + w) or s.find(' ' + w + ' ') != -1" "contains_word('the quick brown fox', 'brown')"1000000 loops, best of 3: 1.13 usec per loop编辑: Python 3.6+的这个想法略有变化,同样快:def contains_word(s, w):&nbsp; &nbsp; return f' {w} ' in f' {s} '

精慕HU

find返回一个整数,表示搜索项找到的位置的索引。如果未找到,则返回-1。haystack = 'asdf'haystack.find('a') # result: 0haystack.find('s') # result: 1haystack.find('g') # result: -1if haystack.find(needle) >= 0:&nbsp; print 'Needle found.'else:&nbsp; print 'Needle not found.'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python