[Python, 기초 문법] 자료형(Data Type) (4) - List, 요소 제거
지금까지 리스트를 다루는 법에 대해 알아보았습니다.
이번 포스트에선 리스트의 요소를 제거하는 법에 대해 알아보겠습니다.
pop, del
리스트 내의 요소를 삭제하는 방법은 크게 두 가지가 있습니다.
하나는 append, extend 때 처럼
리스트에서 제공해주는 pop 함수를 활용하는 것이고,
다른 하나는 파이썬 내장 명령어인
del을 활용하는 것입니다.
먼저 pop은 이전 append 처럼,
요소를 제거하고 싶은 대상 리스트나 리스트가 담긴 변수 다음에
.pop()를 추가 입력하는 방식으로 사용합니다.
test = [1,2,3,4,5] test.pop()
5
append나 extend 때와는 다르게
pop 함수 사용 시
반환 값이 있는 것을 확인할 수 있습니다.
일단은 [1,2,3,4,5] 안에 있는 값 5를 출력해준 것 같긴 한데,
이대로 어떤 요소가 바뀌었는 지 감이 잡히지 않습니다.
test 변수에 담긴 리스트가 어떻게 바뀌었는 지 확인해봅시다.
print(test)
[1,2,3,4]
확인해본 결과
맨 뒤에 있던 숫자 5가 빠져나간 것을 확인할 수 있습니다.
pop은 어떠한 파라메터(인자)도 전달하지 않으면
디폴트로 맨 뒤의 값을 제거하게 설정되어 있습니다.
아래 코드를 실행 해봅시다.
test = [1,2,3,4,5] test.pop(0) print(test)
[2,3,4,5]
pop의 인자로서 0을 입력했습니다.
그 결과 리스트 맨 앞 인자를 제거한 것을 확인할 수 있습니다.
이렇게 pop은 리스트에서 원하는 위치의 요소를 손쉽게 제거할 수 있습니다.
다만 지정한 인덱스가 리스트의 범위를 벗어나게 될 경우 아래와 같은 에러가 발생하니
주의해주세요.
test = [1,2,3,4,5] test.pop(100) print(test)
IndexError: pop index out of range
다음은 del 방식에 대해 알아보겠습니다.
del 방식도 pop과 비슷한 형태로 사용하면 됩니다.
test = [1,2,3,4,5] del test[0] print(test)
[2,3,4,5]
리스트에서 지우고 싶은 요소를 인덱싱 방식으로 가져온다음,
del 명령어를 통해 제거하면 됩니다.
이 방식도 pop과 마찬가지로
리스트 범위를 넘어가는 인덱스 넘버를 입력할 경우 에러가 발생 하므로
사용할 때 주의해주세요.
test = [1,2,3,4,5] del test[10] print(test)
IndexError: list assignment index out of range
사족으로 설명을 드리자면,
del은 비단 리스트 말고도
메모리 상에 저장된 특정 변수를 제거하는 기능도 가지고 있습니다.
아래 코드는 test 라는 변수를 선언하고
이 변수를 삭제했을 때, 파이썬이 어떻게 인식하는 지를 확인하는 코드입니다.
test = 100 print(test) del test print(test)
100 NameError: name 'test' is not defined
지금까지 리스트를 생성하고 원하는 순서의 요소를 탐색하고
요소 추가, 제거를 진행하면서
리스트에 대해 가볍게 알아보았습니다.
다음 포스트에서는 리스트 이외의
다른 자료구조 형태를 알아보겠습니다.
댓글
댓글 쓰기