파이썬 del / remove( )함수 _ 파이썬 삭제, 제거 함수
파이썬 array의 요소 삭제
- 순서 -
1. del : 인덱스로 삭제
2. remove( ) 함수 : 값으로 삭제
del
del은 함수가 아니라 예약어이다. 그렇기 때문에 함수와 같이 사용할 수 없다.
array의 메서드인 함수는 변수 이름 뒤에 점(.)을 붙이고서 사용한다. 그러나 예약어는 예약어 뒤에 한 칸을 띄고서 사용한다. 파이썬의 예약어로는 if, for, or, and 등이 있다.
del의 사용방법은 del 뒤에 한 칸을 띄고서 'del array [인덱스]' 형태로 사용한다.
대괄호[ ] 에는 요소의 위치에 해당하는 인덱스를 입력해서 요소의 위치를 지정해서 삭제를 할 수 있다. 인덱스를 사용할 때는 본래의 인덱스 성질 중에 범위 연산자를 그대로 사용할 수 있다. 범위 연산자 슬라이싱(:)을 이용하면 해당 범위에 위치한 여러 개의 요소를 삭제할 수 있다.
사용 예시
>>> int_list = [1, 2, 3, 4, 5, 6, 7]
>>> str_list = ['가','나','다','라','마']
>>> del int_list[0] # 한개의 요소를 삭제
>>> print(int_list)
[2, 3, 4, 5, 6, 7]
>>> del str_list[3:] # 여러개의 요소를 삭제
>>> print(str_list)
['가', '나', '다']
위 사용 예시에서 보듯 del 예약어는 본래의 데이터를 변경하는 성질을 가지고 있다. del 예약어를 사용 한 이후 array의 요소가 변경된 것을 알 수 있다.
remove( )
remove 함수는 값으로 array의 요소를 삭제한다.
사용방법은 array.remove(x) 형태로 사용한다. 괄호( ) 안에 삭제하고자 하는 값을 입력한다. 단, array 안에서 삭제하고자 하는 값이 여러 개가 있다 하더라도 첫 번째 값에 대해서만 삭제한다.
remove 함수를 사용하여 모든 값을 삭제할 때는 for문을 이용할 수도 있다.
사용 예시
numbers 라는 임의의 숫자를 요소로 가진 리스트를 생성해서 그중 숫자 3을 삭제해보겠다.
>>> numbers = [1, 2, 2, 3, 3, 3] # 숫자 3이 3개인 리스트
>>> numbers.remove(3)
>>> print(numbers)
[1, 2, 2, 3, 3] # 숫자 3이 2개로 줄어들었음
숫자 3이 3개인 리스트인데 하나만 삭제가 되었다.
동일한 리스트에서 숫자 3을 모두 삭제해보겠다. 이때 for문을 이용할 수 있다.
>>> numbers = [1, 2, 2, 3, 3, 3]
>>> for _ in numbers :
>>> numbers.remove(3)
>>> print(numbers)
[1, 2, 2] # 숫자 3이 없음
반복문 안에서 리스트의 요소를 하나씩 꺼내서 remove 함수로 숫자 3을 삭제해나간다. 마지막에 numbers 변수를 print 함수로 출력하면 3이 없는 것을 확인할 수 있다.