[PYTHON] 다른 문자열의 단어 목록 확인 [duplicate]
PYTHON다른 문자열의 단어 목록 확인 [duplicate]
나는 파이썬에서 그런 일을 할 수있다.
l = ['one', 'two', 'three']
if 'some word' in l:
...
이것은 'some word'가 목록에 있는지 확인합니다. 하지만 내가 반대로 할 수 있을까?
l = ['one', 'two', 'three']
if l in 'some one long two phrase three':
...
배열의 일부 단어가 문자열에 있는지 확인해야합니다. 사이클을 사용하여이 작업을 수행 할 수 있지만이 방법은 코드 줄이 더 많습니다.
해결법
-
==============================
1.
if any(word in 'some one long two phrase three' for word in list_):
-
==============================
2.단어 목록에 상당한 길이가 있고이 테스트를 여러 번 수행해야하는 경우 목록을 세트로 변환하고 테스트 교차로를 사용하는 것이 좋습니다 (실제 단어를 얻을 수있는 추가 이점이 있음). 두 목록에서) :
단어 목록에 상당한 길이가 있고이 테스트를 여러 번 수행해야하는 경우 목록을 세트로 변환하고 테스트 교차로를 사용하는 것이 좋습니다 (실제 단어를 얻을 수있는 추가 이점이 있음). 두 목록에서) :
>>> long_word_list = 'some one long two phrase three about above along after against' >>> long_word_set = set(long_word_list.split()) >>> set('word along river'.split()) & long_word_set set(['along'])
-
==============================
3.컨텍스트에 따라 KennyTM의 대답보다 빠르고 더 적합 할 수있는 몇 가지 대체 방법이 있습니다.
컨텍스트에 따라 KennyTM의 대답보다 빠르고 더 적합 할 수있는 몇 가지 대체 방법이 있습니다.
1) 정규식을 사용하십시오.
import re words_re = re.compile("|".join(list_of_words)) if words_re.search('some one long two phrase three'): # do logic you want to perform
2) 단어 전체를 일치 시키려면 세트를 사용할 수 있습니다. 당신은 "그들 theorems은 이론적이다"라는 문구에서 "the"라는 단어를 찾고 싶지 않습니다 :
word_set = set(list_of_words) phrase_set = set('some one long two phrase three'.split()) if word_set.intersection(phrase_set): # do stuff
물론 "\ b"토큰을 사용하여 regex로 전체 단어 일치를 수행 할 수도 있습니다.
이들과 Kenny의 솔루션의 성능은 단어 목록과 문구 문자열의 길이와 얼마나 자주 변경되는지와 같은 여러 요소에 따라 달라집니다. 성능이 문제가 아니라면 가장 단순한 것으로 이동하십시오. 아마도 Kenny 's 일 것입니다.
-
==============================
4.이 문제를 해결하는 가장 쉽고 간단한 방법은
이 문제를 해결하는 가장 쉽고 간단한 방법은
import re search_list = ['one', 'two', 'there'] long_string = 'some one long two phrase three' if re.compile('|'.join(search_list),re.IGNORECASE).search(long_string): #re.IGNORECASE is used to ignore case # Do Something if word is present else: # Do Something else if word is not present
from https://stackoverflow.com/questions/3271478/check-list-of-words-in-another-string by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬을 사용하여 웹 페이지를 PDF로 변환하는 방법 (0) | 2018.10.06 |
---|---|
[PYTHON] 파이썬 MySQLDB IN 절에서 사용할리스트를 imploding하기 (0) | 2018.10.06 |
[PYTHON] 파일이 비어 있는지 확인하는 방법? (0) | 2018.10.06 |
[PYTHON] 살아있는 파이썬 urllib2 (0) | 2018.10.06 |
[PYTHON] matplotlib에 두 번째 x 축을 추가하는 방법 (0) | 2018.10.06 |