[Python] 리스트 slice, pop, del, remove 사용 방법 및 성능 비교

Minyoung Lee·2023년 1월 11일
post-thumbnail

출처 - 리스트 slice, pop, del 성능 비교

1. 리스트 값 자체를 조정 - remove(), pop(), del

remove()

  • 지우고자 하는 인덱스가 아닌, 값을 입력하는 방식입니다.
  • 지우려는 값이 리스트 안에 2개 이상(중복) 들어있다면, 앞에서부터 1개를 지운다.
a = [1, 2, 1, 3, 4, 5, 1]
a.remove(1)


print(a)
print(a[0]) 
==============
[2, 1, 3, 4, 5, 1]
2

pop(), del

  • pop()과 del은 지우고자 하는 리스트의 인덱스를 받아서 지우는 방식
  • 차이
    • pop() 은 지워진 값의 index를 반환, 리스트의 범위를 지정하여 삭제하지 못함.
    • del 은 명령어로 반환값 X, 리스트의 범위 지정 가능

      이런 반환값의 유무로 미세하게 del이 pop 보다 빠르다.

a = [1, 2, 1, 3, 4, 5, 1]
pop_return = a.pop(1)


print(a) 
print(pop_return) 
print(a[0])

=================
#[1, 1, 3, 4, 5, 1] 
#2 
#1


a = [1,2,1,3,4,5,1] 
del a[1]


print(a) 
print(a[0])
==================
#[1, 1, 3, 4, 5, 1] 
#1
 
a = [1,2,1,3,4,5,1]
del a[:2]

print(a)

# [1, 3, 4, 5, 1]

2. 리스트 건들지 않는 방법

slice

  • 슬라이싱은 위와 같이 리스트의 값을 지우는 것이 아닌, 사용자가 원하고자 하는 범위를 출력합니다. 즉, 원본 리스트는 그대로 존재하며 원하고자 하는 범위만큼 출력을 하기 위해 새로운 리스트가 생성됩니다.
origin= [1,2,1,3,4,5,1]
after = a[1:]

print(b)
print(a)


# [2, 1, 3, 4, 5, 1]
# [1, 2, 1, 3, 4, 5, 1]

성능비교

위에서 설명한 것과 같이 리스트를 조작하는 기능은 다양하지만 성능면으로 어떤 것을 사용해야 할 지 몰라서 성능측정을 실험했습니다.

리스트는 문자를 50, 50만개를 진행한 결과
del이 가장 빠르고 pop()과 remove()는 비슷한 수행시간을 가지며 슬라이싱이 가장 느립니다.

profile
웩알고👩‍💻

0개의 댓글