Python - 리스트 특정 값 제거

리스트에서 특정 객체를 제거하는 방법을 소개합니다.

1. list.remove()를 이용한 방법

list.remove(value)는 리스트에 value가 있을 때, 리스트에서 value를 삭제합니다.

food = ['pizza', 'hamburger', 'sandwich', 'donuts']

food.remove('sandwich')
print(food)

food.remove('pizza')
print(food)

Output:

['pizza', 'hamburger', 'donuts']
['hamburger', 'donuts']

1.1 존재하지 않는 value 삭제

remove()로 리스트에 없는 value를 삭제하려고 하면 ValueError가 발생합니다.

food = ['pizza', 'hamburger', 'sandwich', 'donuts']
food.remove('ppp')

Output:

Traceback (most recent call last):
  File "/home/mjs/IdeaProjects/python-ex/ex1.py", line 3, in <module>
    food.remove('ppp')
ValueError: list.remove(x): x not in list

1.2 리스트에 value가 있는지 확인 후 삭제

ValueError를 발생시키지 않으려면, 아래와 같이 삭제하기 전에 리스트에 value가 있는지 확인 후 remove()로 삭제해야 합니다.

food = ['pizza', 'hamburger', 'sandwich', 'donuts']

value = 'ppp'
if value in food:
    food.remove(value)

print(food)

Output:

['pizza', 'hamburger', 'sandwich', 'donuts']

1.3 중복 value 삭제

리스트에 동일한 value가 있을 때 remove()는 1개의 값만 삭제합니다. 모두 제거하려면 요소 개수만큼 remove()를 호출해야 합니다.

food = ['pizza', 'hamburger', 'donuts', 'donuts']

food.remove('donuts')
print(food)

food.remove('donuts')
print(food)

Output:

['pizza', 'hamburger', 'donuts']
['pizza', 'hamburger']

2. list.pop()을 이용한 방법

list.pop(index)는 리스트에서 index에 해당하는 value를 삭제합니다.

food = ['pizza', 'hamburger', 'sandwich', 'donuts']

food.pop(1)
print(food)

food.pop(1)
print(food)

Output:

['pizza', 'sandwich', 'donuts']
['pizza', 'donuts']

3. del을 이용한 방법

del list[start:end]는 리스트의 start index부터 end index 전까지 삭제합니다.

del food[1:3]은 Index 1에서 Index 2까지의 value를 삭제합니다.

food = ['pizza', 'hamburger', 'sandwich', 'donuts']

del food[1:3]

print(food)

Output:

['pizza', 'donuts']
Loading script...
codechachaCopyright ©2019 codechacha