본문 바로가기
Python

Python - List 에서 문자열 포함 유무를 확인

by 올엠 2024. 3. 25.
반응형

Python에서  List 의 문자열 포함 유무를 확인할 수 있는 3가지 방법에 대해서 정리해 보겠다.

가장 쉽게는 for문을 이용하는 것이다. 이는 익히 사용을 많이 하기 때문에 여기에 정리하지 않겠다.

여기에서는 Pandas 및 지능형 리스트 활용하는 방법에 대해서 정리해 본다.

먼저 Pandas에서 제공하는 str.contains를 통해서 리스트에서 검색이 가능하다.

여기에서 특히 강점은 contains 조건을 다중으로 설정 할 수 있다는 것이다.

아래 코드를 보면 a|b라는 문장을 만들어 a또는b가 포함된 리스트를 확인하는 것이 가능하다.

Pandas

>>> import pandas as pd
>>> 
>>> abc_list ={'name':['aaaa', 'bcd', 'xyz', 'y']} 
>>> abc_list_df = pd.DataFrame(abc_list)
>>> 
>>> str_match = '|'.join(['a', 'b'])
>>> df_result = abc_list_df[abc_list_df['name'].str.contains(str_match)]
>>> 
>>> df_result
   name
0  aaaa
1   bcd

다중으로 복잡한 쿼리에서 이를 활용하는 것이 용이할 것이다.

복잡하지 않다면 아래와 같이 지능형 리스트를 통해 아래와 같이 in 사용할 수 도 있다.

in 을 사용하면  in 앞에 사용한 문자가 포함되었는지 확인하여 True/False를 검증하는 방식이다. 

지능형 리스트

>>> abc_list ={'name':['aaaa', 'bcd', 'xyz', 'y']} 
>>> 
>>> in_result = [match_item for match_item in abc_list['name'] if 'a' in match_item or 'b' in match_item]
>>> in_result
['aaaa', 'bcd']


 

 

반응형