4. 파이썬 리스트 요소 삭제하기


파이썬 리스트 요소 삭제하기

파이썬 리스트 또는 NumPy 어레이에서 요소를 삭제하는 다양한 방법에 대해 소개합니다.




remove() 메서드 사용하기

파이썬 리스트에서 특정 값을 갖는 요소를 삭제하는 가장 간단한 방법은 remove() 메서드를 이용하는 것입니다.


예제1

lst = [4, 3, 2, 1]
lst.remove(3)
print(lst)
[4, 2, 1]

list.remove(value)의 형태로 값을 입력해주면 리스트에서 값을 갖는 요소를 삭제합니다.

똑같은 값이 두 개 있다면 첫번째 요소만 삭제합니다. 그리고 한 번에 하나의 값만 입력할 수 있습니다.



예제2

lst = [4, 3, 2, 3, 1]
for item in lst:
    if item == 3:
        lst.remove(3)

print(lst)
[4, 2, 1]

똑같은 값이 여러 개 있을 때에는 위와 같이 반복문을 사용해서 삭제할 수 있습니다.




리스트 컴프리헨션 이용하기

파이썬의 리스트 컴프리헨션 (list comprehension)을 사용하면 훨씬 간단하게 값을 삭제할 수 있습니다.


예제

lst = [4, 3, 2, 3, 1]
lst = [item for item in lst if item != 3 and item != 1]
print(lst)
[4, 2]

리스트 컴프리헨션과 조건식을 이용해서 1과 3에 해당하는 요소를 모두 삭제했습니다.




NumPy delete() 사용하기 - by Index

NumPy 어레이에 대해 np.delete()를 사용하면 인덱스를 이용해서 특정 요소를 삭제할 수 있습니다.


예제

import numpy as np

arr = np.array([4, 3, 2, 1])
new_arr = np.delete(arr, [1, 3])

print(new1)
[4 2]

np.delete(arr, [indices])의 형태로 삭제할 요소의 인덱스들을 리스트의 형태로 입력합니다.

어레이에서 두번째, 네번째 요소가 삭제되었습니다.




NumPy delete() 사용하기 - by Value

np.delete()를 사용하면서, 값을 이용해서 요소를 삭제하기 위해서는 np.where()을 함께 사용할 수 있습니다.

np.where()은 조건에 해당하는 요소의 인덱스를 반환하는 함수입니다.


예제

import numpy as np

arr = np.array([4, 3, 2, 3, 1])
new_arr = np.delete(arr, np.where((arr == 3) | (arr == 1)))

print(new_arr)
[4 2]

np.where((arr == 3) | (arr == 1))는 어레이 arr의 요소가 3 또는 1인 요소의 인덱스들입니다.

new_arr는 3과 1에 해당하는 요소가 모두 삭제된 어레이입니다.



이전글/다음글