프로그래밍/Python

파이썬 list에서 특정 문자열을 포함하는지 확인하고 제거하기.

히또아빠 2023. 8. 21. 16:33

1.특정문자열 포함 확인

파이썬에서 리스트 내에 특정 문자열을 포함하는지 확인하는 방법은 다음 네가지를 고려할 수 있다. 대소문자를 무시하려면 비교시 대문자 또는 소문자로 통일후 진행

1) 반복문 사용

def contains_string(lst, target):
    for item in lst:
        if target in item:
            return True
    return False

my_list = ["apple", "banana", "cherry"]
target_string = "bana"

result = contains_string(my_list, target_string)
print(result)  # True

2) any() 함수와 list 컴프리헨션 사용

my_list = ["apple", "banana", "cherry"]
target_string = "bana"

result = any(target_string in item for item in my_list)
print(result)  # True

3) filter 함수와 len() 함수 사용

해당 방법이 가장 간결하고 파이썬 다운?? 방법임.

my_list = ["apple", "banana", "cherry"]
target_string = "bana"

result = any(target_string in item for item in my_list)
print(result)  # True

4) set()과 교집합(intersection) 사용

my_list = ["apple", "banana", "cherry"]
target_string = "bana"

result = bool(set(my_list) & {target_string})
print(result)  # True

2.특정 문자열 제거

위에서 특정 문자열을 포함하는지 확인했으니 이번에는 제거하는 방법이다.

  • 리스트에서 값을 제거할 때 리스트 내용이 변경되는 방식이라면 3) remove ,4) 반복문 활용하는 방법을 사용하고,
  • 원본 리스트를 변경하지않고 새로운 리스트를 만드는 경우라면 1) 리스트 컴프리 헨션, 2) filter() 함수 사용

1) 리스트 컴프리헨션 사용

my_list = ["apple", "banana", "cherry", "banana"]
target_string = "banana"

new_list = [item for item in my_list if item != target_string]
print(new_list)  # ["apple", "cherry"]

2) filter함수와 lambda 함수 사용

my_list = ["apple", "banana", "cherry", "banana"]
target_string = "banana"

new_list = list(filter(lambda x: x != target_string, my_list))
print(new_list)  # ["apple", "cherry"]

3) remove() 메소드 사용 - 주의!! 첫번째로 발견된 항목만 제거하므로 중복있는 경우는 다른 방법 사용

my_list = ["apple", "banana", "cherry", "banana"]
target_string = "banana"

my_list.remove(target_string)
print(my_list)  # ["apple", "cherry", "banana"]

4) 반복문 사용해서 직접 제거

my_list = ["apple", "banana", "cherry", "banana"]
target_string = "banana"

new_list = []
for item in my_list:
    if item != target_string:
        new_list.append(item)

print(new_list)  # ["apple", "cherry"]

 

300x250
반응형