Python 리스트 값 삭제 clear, pop, remove, del

파이썬에서 리스트 형태에 저장된 값을 삭제하는 방법을 보겠습니다.

리스트에서 값을 삭제하기 위해서는 함수를 사용하거나 범위를 지정해 삭제할 수 있습니다.

 종류내용
 clear() 모든 요소 삭제
 pop() 지정한 위치 값을 삭제하고 삭제한 값 취득
 remove() 지정한 위치 값과 같은 값을 검색후 처음 값을 삭제
 del 위치 또는 범위를 지정 삭제

  

clear()

리스트에 저장된 모든 값을 삭제합니다.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l.clear()
print(l)
# []

  

pop()

지정한 위치에 값을 취득한 후 삭제합니다.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(0))
# 0

print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(3))
# 4

print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]

 

리스트 인덱스는 0부터 시작합니다.

뒤에서부터 인덱스를 지정하고 싶은 경우는 마이너스를 사용합니다.

뒤에서부터 위치를 지정하는 경우는 -1부터 시작합니다.

l = [1, 2, 3, 5, 6, 7, 8, 9]

print(l.pop(-2))
# 8

print(l)
# [1, 2, 3, 5, 6, 7, 9]

 

인덱스를 생략한 경우에는 마지막 값을 취득하고 삭제합니다.

l = [1, 2, 3, 5, 6, 7, 9]

print(l.pop())
# 9

print(l)
# [1, 2, 3, 5, 6, 7]

존재하지 않는 인덱스를 지정한 경우에는 에러가 발생합니다.

print(l.pop(100))
IndexError: pop index out of range

  

remove()

설정한 값과 같은 요소를 검색하고 값을 삭제합니다.

설정한 값이 리스트에 여러개 있는 경우에는 가장 앞에 있는 값 하나만 삭제합니다.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

 

설정한 값이 존재하지 않는 경우에는 에러가 발생합니다.

l.remove('xxx')
ValueError: list.remove(x): x not in list

  

del

삭제하고 싶은 값을 인덱스로 지정합니다.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]

del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]

 

여러개 값을 지우고 싶은 경우에는 슬라이스로 범위를 지정합니다.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]

l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]

l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]

l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]

댓글