티스토리 뷰

반응형

 

파이썬 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이 없는 것을 확인할 수 있다.

 

반응형
댓글
반응형