Programming/Python

[Python] 리스트 자료형 메소드 remove() / del / pop() 차이

킹우현 2023. 8. 23. 15:37

파이썬 리스트(List)의 remove, del, 그리고 pop 메서드는 모두 리스트의 요소를 삭제하는 데 사용되지만, 조금씩 다른 방식으로 작동합니다.

 

1. remove() 메소드

my_list = [1, 2, 3, 2, 4]
my_list.remove(2)  # 첫 번째 2가 삭제됨
print(my_list)  # [1, 3, 2, 4]

사용법: list.remove(value)

 

주어진 값과 동일한 첫 번째 요소를 찾아 삭제합니다. 만약 리스트에 동일한 값이 여러 개 있을 경우, 가장 왼쪽에 있는 첫 번째 값을 삭제합니다.


해당 값이 리스트에 없을 경우 ValueError 예외가 발생합니다.

 

2. del 키워드

Copy code
my_list = [1, 2, 3, 4, 5]
del my_list[2]  # 인덱스 2에 있는 값 3이 삭제됨
print(my_list)  # [1, 2, 4, 5]

사용법: del list[index] 또는 del list[start:end]


주어진 인덱스에 있는 요소를 삭제합니다. 슬라이싱을 사용하면 범위 내의 여러 요소를 삭제할 수 있습니다.


del은 인덱스나 슬라이스를 직접 사용하기 때문에 값 자체가 아니라 위치에 기반한 삭제입니다. ⭐️


삭제한 후에는 해당 인덱스에 다른 값이 들어가거나 리스트가 빈 공간을 가질 수 있습니다.

 

3. pop 메소드

my_list = [1, 2, 3, 4, 5]
popped_value = my_list.pop(2)  # 인덱스 2에 있는 값 3이 삭제되고 반환됨
print(my_list)  # [1, 2, 4, 5]
print(popped_value)  # 3

사용법: list.pop(index)


주어진 인덱스에 있는 요소를 삭제하고 해당 값을 반환합니다. 인덱스를 지정하지 않으면 리스트의 마지막 요소를 삭제하고 반환합니다.


해당 인덱스에 대한 값이 없으면 IndexError 예외가 발생합니다.

 

정리

요약하면, remove는 값에 기반하여 삭제하고, del은 위치(인덱스)에 기반하여 삭제하며, pop은 위치에 기반하여 삭제하고 삭제한 값을 반환합니다.