본문 바로가기
programming/Python

파이썬 세트 아이템 값 삭제와 제거하기 Python Set Remove Item

by 개코 - 개발과 코딩 2021. 9. 6.

파이썬 세트 컬렉션은 아이템을 삭제할 수 있고 메모리에서 세트 데이터 자체를 제거할 수 있다. 파이썬 세트의 값을 제거하려면 파이썬의 세트 함수인 remove() 또는 discard() 함수를 사용한다. 파이썬 세트의 내용만 제거하려면 clear() 함수를 사용하며, 세트 데이터 자체를 메모리에서 제거하려면 del 명령어 키워드를 사용한다.

 

파이썬 세트 아이템 값 삭제와 제거하기
Python Set Remove Item

파이썬 세트는 컬렉션이다.

여러 가지 데이터 타입을 가진 아이템들이 존재하며, 원한다면 제거할 수 있다.

파이선 세트에 있는 아이템 값들을 제거해 보도록 한다.

먼저 파이썬 세트 데이터를 준비한다.

print('----------')

vSet_Company = {"YG Ent.", "블랙핑크"}
vSet_Member = {"지수", "제니", "로제", "리사"}

vSet = vSet_Company.copy()
vSet.update(vSet_Member)

print("셋 Set 문자열 : ", type(vSet), len(vSet), vSet)

print('----------')

copy() 함수를 사용하면 파이썬 세트를 복사할 수 있다.

복사한 세트 데이터는 원본 세트 데이터와 독립적으로 사용된다.

update() 함수를 사용하여 하나의 완성된 세트 데이터를 구성한다.

 

파이썬 세트 아이템 값 제거하기

파이썬 세트 데이터에서 특정 값의 데이터를 삭제하거나 제거하려면 remove() 또는 discard() 함수를 사용한다.

사용법은 Set.remove("삭제할값") Set.discard("삭제할값") 형태로 사용된다.

삭제할 값은 파이썬 세트에 들어있는 값을 말한다.

print('----------')

vSet.remove("YG Ent.")
vSet.discard("블랙핑크")

print("아이템 삭제 : ", type(vSet), len(vSet), vSet)

print('----------')

2개의 특정 값을 제거한다.

값이 삭제된 것을 알 수 있다.

remove() 함수와 discard() 함수이 차이가 있지만 나중으로 미룬다.

가시적으로 보는 기능은 같지만 굳이 함수가 다르다면 내부적인 동작 구현에 차이가 있다.

 

파이썬 세트 마지막 값 제거하기

파이썬 세트에 들어있는 값들 중 마지막 값을 제거하는 것은 pop() 함수를 사용할 수 있다.

주의할 것이 있다.

파이썬 세트는 순서가 정해져 있지 않다.

눈으로 보는 가시적인 순서는 눈으로만 보일 뿐 파이썬이 내부적으로 가지고 있는 마지막 값은 어떤 것인지 pop() 함수를 사용해야 알 수 있는 것이다.

print('----------')

vSet_Company = {"YG Ent.", "블랙핑크"}
vSet_Member = {"지수", "제니", "로제", "리사"}

vSet = vSet_Company.copy()
vSet.update(vSet_Member)

print("세트 Set : ", type(vSet), len(vSet), vSet)

print('----------')

vLastVal = vSet.pop()

print("아이템 마지막 값 : ", type(vLastVal), vLastVal)
print("아이템 삭제 pop : ", type(vSet), len(vSet), vSet)

print('----------')

pop() 함수를 사용하면 파이썬 세트에 들어있는 마지막 값이 어떤 것인지 알 수 있고, 세트 데이터에서 제거된다.

결과화면을 보자.

가시적으로 보는 순서는 눈으로 보는 순서일 뿐이다.

파이썬인 내부적으로 가지고 있는 마지막 값은 다르다.

pop() 함수를 사용하면 가장 앞에 있는 값이 마지막 값으로 출력되는 것을 알 수 있다.

 

파이썬 세트 자체를 제거하기

clear() 함수와 del 명령어 키워드를 사용하면 파이썬 세트의 값 전체를 제거할 수 있다.

이 둘에는 차이가 있다.

clear() 함수는 세트 변수는 그대로 두고, 세트에 들어있는 데이터 전체를 삭제한다.

del 명령어 키워드를 사용하면 세트 변수 데이터 자체까지 삭제하며 메모리에서도 제거된다.

그렇기에 출력을 하기 위해 세트 변수에 접근하려고 하면 에러가 발생한다.

print('----------')

vSet.clear()

print("Set Collection clear : ", type(vSet), len(vSet), vSet)

print('----------')

del vSet

print("Set Collection del : ", type(vSet), len(vSet), vSet)

print('----------')

clear() 함수와 del 명령어 키워드를 사용했을 때의 차이는 명확하다.

clear() 함수를 사용할 경우 세트의 내용이 없는 것을 알 수 있다.

하지만 del 명령어를 사용했을 때 변수 자체도 제거되어 접근할 수 없는 것을 알 수 있다.

 

반응형

댓글