파이썬에서 리스트 형태에 저장된 값을 삭제하는 방법을 보겠습니다.
리스트에서 값을 삭제하기 위해서는 함수를 사용하거나 범위를 지정해 삭제할 수 있습니다.
종류 | 내용 |
---|---|
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]
댓글