반응형
정규식 : 목록에서 검색
정규식을 기반으로 목록의 문자열을 필터링하고 싶습니다.
보다 나은 것이 [x for x in list if r.match(x)]
있습니까?
다음을 사용하여 Python 3.x에서 반복기 를 만들 거나 Python 2.x에서 목록 을 만들 수 있습니다 .
filter(r.match, list)
Python 3.x 반복기 를 목록으로 변환하려면 간단히 캐스트하십시오. list(filter(..))
.
전체 예제 (Python 3) :
Python 2.x의 경우 아래 참고 사항을 살펴보십시오.
import re
mylist = ["dog", "cat", "wildcat", "thundercat", "cow", "hooo"]
r = re.compile(".*cat")
newlist = list(filter(r.match, mylist)) # Read Note
print(newlist)
인쇄물:
['cat', 'wildcat', 'thundercat']
노트 :
Python 2.x 사용자의 경우 filter
이미 목록을 반환합니다. 파이썬 3.xfilter
에서는 반복자를 반환하도록 변경되었으므로 list
(잘 출력되는 것을 보려면) 로 변환해야 합니다.
Python 3 코드 예제
Python 2.x 코드 예제
누군가가 미래에 여기에 올 경우를 대비하여 비단뱀 같은 또 다른 방법이 있습니다. 먼저 regex
만든 다음filter
import re
inilist =["dog", "cat", "wildcat", "thundercat", "cow", "hooo"]
regex = re.compile(r'.*cat')
selectobj = filter(regex.search, inilist)
selectobj
결과 :
['cat', 'wildcat', 'thundercat']
참고 URL : https://stackoverflow.com/questions/3640359/regular-expressions-search-in-list
반응형
'program tip' 카테고리의 다른 글
Twitter 애플리케이션 용 Android Intent (0) | 2020.11.29 |
---|---|
C # 목록에서 중복 확인 (0) | 2020.11.29 |
jQuery로 입력 값을 어떻게 비우나요? (0) | 2020.11.29 |
Google 리 마케팅 태그-iframe 높이 문제 (0) | 2020.11.29 |
Bash에서 테이블 열을 정렬하는 방법은 무엇입니까? (0) | 2020.11.29 |