반응형
내용을 기준으로 문자열 목록 필터링
목록이 주어짐['a','ab','abc','bac']다음 문자열이 있는 목록을 계산하고 싶습니다.'ab'그들 안에.즉, 결과는['ab','abc']파이썬에서 이 작업을 수행하는 방법은 무엇입니까?
이 간단한 필터링은 Python을 사용하여 여러 가지 방법으로 수행할 수 있습니다.가장 좋은 방법은 다음과 같이 "포괄적 목록"을 사용하는 것입니다.
>>> lst = ['a', 'ab', 'abc', 'bac']
>>> [k for k in lst if 'ab' in k]
['ab', 'abc']
다른 방법은 다음을 사용하는 것입니다.filter기능.Python 2의 경우:
>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
Python 3에서는 목록 대신 반복기를 반환하지만 캐스트할 수 있습니다.
>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']
이해력을 사용하는 것이 더 나은 연습이긴 하지만요.
[x for x in L if 'ab' in x]
# To support matches from the beginning, not any matches:
items = ['a', 'ab', 'abc', 'bac']
prefix = 'ab'
filter(lambda x: x.startswith(prefix), items)
대화형 셸에서 빠르게 테스트:
>>> l = ['a', 'ab', 'abc', 'bac']
>>> [x for x in l if 'ab' in x]
['ab', 'abc']
>>>
왜 이것이 작동합니까?연산자가 문자열에 대해 "is substring of"를 의미하도록 정의되기 때문입니다.
또한 위에 사용된 목록 이해 구문을 사용하는 대신 루프를 쓰는 것을 고려할 수 있습니다.
l = ['a', 'ab', 'abc', 'bac']
result = []
for s in l:
if 'ab' in s:
result.append(s)
mylist = ['a', 'ab', 'abc']
assert 'ab' in mylist
언급URL : https://stackoverflow.com/questions/2152898/filtering-a-list-of-strings-based-on-contents
반응형
'codememo' 카테고리의 다른 글
| 가시성 간의 차이입니다.축소 및 가시성.히든 (0) | 2023.05.28 |
|---|---|
| 줄 끝 변환이 깃 코어에서 작동하는 방식입니다.서로 다른 운영 체제 간의 자동 제어 (0) | 2023.05.28 |
| IF EXISTS 하위 쿼리와 함께 SQL Select 문을 사용하는 방법은 무엇입니까? (0) | 2023.05.28 |
| Node.js를 사용하여 디렉터리가 없는 경우 디렉터리를 만드는 방법 (0) | 2023.05.28 |
| 6자리 정규식 (0) | 2023.05.28 |