set 자료형에는 특정 element를 삭제하는 메소드로 remove()와 discard()가 있다.
remove()
remove는 삭제하려는 값이 set에 존재하지 않다면 오류를 발생시킨다.
예를 들어 remove()를 이용해서 10이라는 element를 두번 제거해보자
s = set()
s.add(10)
s.remove(10)
s.remove(10)
첫번째 remove()는 예상대로 정상 동작하지만 두번째 remove()를 수행할 때는 다음과 같은 에러가 발생한다.
Traceback (most recent call last):
File "test.py", line 5, in <module>
s.remove(10)
KeyError: 10
집합에 아무런 element도 없기 때문에 10이라는 element를 지우려고 할 때 KeyError가 발생한다.
discard()
하지만 discard는 삭제하고자 하는 값이 없으면 무시한다.
위 코드에서 remove() 메소드를 discard() 메소드로 변경해보자.
s = set()
s.add(10)
s.discard(10)
s.discard(10)
이 코드를 실행하면
Process finished with exit code 0
정상적으로 진행된다.
discard는 삭제하려는 값이 set에 존재하는지 따지지 않고 사용할 수 있다는 점에서 remove보다 편리하다.
출처: https://dev.plusblog.co.kr/41
'Python' 카테고리의 다른 글
| [Python] for문 사용해서 list 원소 값 변경하는 방법 (0) | 2021.06.23 |
|---|---|
| [부스트코스] [모두를 위한 파이썬] 예외처리(try, except) (0) | 2021.05.15 |
| [부스트코스] [모두를 위한 파이썬] 변수, 표현식, 문장 (0) | 2021.05.14 |
| [부스트코스] [모두를 위한 파이썬] 예약어, 순차문, 조건문 및 반복문 (0) | 2021.05.14 |
| [Python] [정렬] list.sort()와 sorted()의 차이 (0) | 2021.05.10 |