파이썬 리스트에서 특정 요소를 제거할 때는 remove() 메서드를 사용할 수 있습니다.
리스트의 remove() 메서드로 특정 요소 삭제
fruits = ['banana', 'strawberry', 'watermelon', 'orange']
print(fruits) # ['banana', 'strawberry', 'watermelon', 'orange']
fruits.remove("watermelon")
print(fruits) # ['banana', 'strawberry', 'orange']
주석을 통해 확인할 수 있듯이 remove() 메서드의 인수로 전달한 watermelon이 리스트에서 제거되었습니다.
그런데 만약 제거하고 싶은 요소가 리스트 안에 여러 개가 있는 상황에서 remove 메서드를 사용하면 어떻게 될까요?
fruits = ['banana', 'strawberry', 'watermelon', 'orange', 'watermelon']
print(fruits) # ['banana', 'strawberry', 'watermelon', 'orange', 'watermelon']
fruits.remove("watermelon")
print(fruits) # ['banana', 'strawberry', 'orange', 'watermelon']
보시다시피 첫번째로 만난 요소만 제거합니다.
리스트 내 특정 요소 모두 제거하기
watermelon이라는 요소를 리스트 내에서 모두 제거하고 싶다면 다음과 같이 리스트 컴프리헨션을 사용하여 제거해줄 수 있습니다.
fruits = ['banana', 'strawberry', 'watermelon', 'orange', 'watermelon']
print(fruits) # ['banana', 'strawberry', 'watermelon', 'orange', 'watermelon']
fruits = [fruit for fruit in fruits if fruit != 'watermelon']
print(fruits) # ['banana', 'strawberry', 'orange']
watermelon이 모두 다 제거된 것을 확인하실 수 있습니다. watermelon이 아닌 요소들만 리스트에 담아준 것입니다. 리스트 컴프리헨션을 사용하면 그냥 여러 줄에 걸쳐 반복문을 사용한 것보다 속도적으로 훨씬 빠릅니다.
'Dev > python' 카테고리의 다른 글
[sqlalchemy] 두 개 컬럼 나눗셈 연산하는 방법 (0) | 2023.08.22 |
---|---|
[pandas] 시리즈를 데이터프레임으로 변환하는 방법, to_frame() 메서드 (0) | 2023.08.18 |
[python] 딕셔너리 깊은 복사, copy.deepcopy() (0) | 2023.08.17 |
[python] 리스트 요소 중복 횟수 카운트하기 (0) | 2023.08.16 |
[python] json의 키 리스트 추출하는 방법 (0) | 2023.08.15 |
[pandas] 데이터프레임에서 특정 셀의 값 변경하기 (0) | 2023.08.14 |
[python] logging 모듈로 로그 찍을 때 f-string 포매팅 권장하지 않음 (0) | 2023.08.11 |
[python] Enum의 네임, 값 리스트 추출하는 방법 (0) | 2023.08.11 |