개발언어 Back-End/Python

리스트에서 데이터 삭제하기 - del, pop, slicing, remove

bluebamus 2023. 12. 18.

1. del 키워드를 사용하여 삭제하기:

   - 장점:
      - 간단하고 직관적인 방법으로 데이터를 삭제할 수 있습니다.
   - 단점:
      -  삭제된 데이터 이후의 데이터가 한 칸씩 앞으로 당겨지므로, 리스트의 길이에 따라 성능이 저하될 수 있습니다.
      -  삭제된 데이터의 인덱스 이후의 모든 데이터를 재배열해야 하므로, 데이터의 개수가 많을 경우 성능이 저하될 수 있습니다.

item_list = [1, 2, 3, 4, 5]  # 삭제할 데이터가 있는 리스트
index = 2  # 삭제할 데이터의 인덱스

del item_list[index]
print(item_list)  # [1, 2, 4, 5]

 

2. pop() 메서드를 사용하여 삭제하고 반환하기:

   - 장점 :

      - 삭제된 데이터를 반환받을 수 있어, 삭제한 데이터를 활용할 수 있습니다.

   - 단점:

      - 삭제된 데이터 이후의 데이터가 한 칸씩 앞으로 당겨지므로, 리스트의 길이에 따라 성능이 저하될 수 있습니다. 

      - 삭제된 데이터의 인덱스 이후의 모든 데이터를 재배열해야 하므로, 데이터의 개수가 많을 경우 성능이 저하될 수 있습니다.

item_list = [1, 2, 3, 4, 5]  # 삭제할 데이터가 있는 리스트
index = 2  # 삭제할 데이터의 인덱스

removed_item = item_list.pop(index)
print(item_list)  # [1, 2, 4, 5]

 

3. 리스트 슬라이싱을 사용하여 삭제하기:

   - 장점 :

      - 원본 리스트를 변경하지 않고 삭제된 데이터를 제외한 새로운 리스트를 생성할 수 있습니다.

      - 삭제된 데이터 이후의 데이터를 재배열할 필요가 없어 성능이 좋을 수 있습니다.

   - 단점 :

      - 리스트 슬라이싱은 새로운 리스트를 생성하므로, 메모리 사용량이 증가할 수 있습니다.

      - 큰 리스트에서 일부 데이터를 삭제할 경우, 새로운 리스트를 생성하는 과정이 오래 걸릴 수 있습니다.

item_list = [1, 2, 3, 4, 5]  # 삭제할 데이터가 있는 리스트
index = 2  # 삭제할 데이터의 인덱스

item_list = item_list[:index] + item_list[index+1:]
print(item_list)  # [1, 2, 4, 5]

 

4. remove() 메서드를 사용하여 값으로 삭제하기:
   - 장점 :

      - 삭제할 값을 직접 지정하여 삭제할 수 있습니다.

      - 삭제된 데이터 이후의 데이터를 재배열할 필요가 없어 성능이 좋을 수 있습니다.

   - 단점 :

      - 삭제할 값을 정확히 지정해야 하므로, 삭제할 데이터가 중복되는 경우 첫 번째로 일치하는 데이터만 삭제됩니다.

      - 삭제할 값이 리스트에 존재하지 않는 경우 ValueError가 발생합니다.

item_list = [1, 2, 3, 4, 5]  # 삭제할 데이터가 있는 리스트
value = 3  # 삭제할 데이터의 값

item_list.remove(value)
print(item_list)  # [1, 2, 4, 5]

 

댓글