본문 바로가기

코딩/파이썬

컬렉션 타입 - 세트

세트(set)

: 중복되지 않는 항목들컬렉션

을 말하는데,

 

일단 첫째! 

set는 {}(중괄호)를 써서 나타낸다.

중괄호에 데이터를 써서 나타내는데,

만약

중괄호안에 데이터가 없을 시dict(딕셔너리) 형이 되므로 

참고!!!!

 

set를 표현하는 방법에는 역시,

1. {}를 써서 나타내는 방법,

2. set()함수를 사용하는 방법 두가지가 있다!

 

set는 처음부터 '중복되지 않는 항목들의' 컬렉션 이라 하였는데,

만약 set1 = {2, 4, 5, 6, 3, 2, 5} 이라면,

print(set1)시에

결과값은 {2, 4, 5, 6, 3}이 나온다.

그렇기에

중복된 값이 있다면 set를 쓸 때, 빼준다는 것을 알 수 있다!

 

그렇다면~

우리는 이제 set를 쓸 때 사용할 수 있는 함수를 알아보자!!

 

- add(): 세트에 요소를 추가해준다 

set2 = {10, 20}
set2.add(100)
print(set2)
set2.add(50)
print(set2)

 

{10, 20, 100}

{10, 50, 20, 100}

 

이렇듯 위 결과를 보았을 때

add()함수

순서가 임의대로 나오며,

인덱싱되지 않음을 알 수 있다.

 

- update() : 세트에 여러 요소를 추가한다

set3 = {10, 20}
set3.update([30, 40, 50, 60])
print(set3)

 

{10, 20, 30, 40, 50, 60}

 

- remove() : 세트의 요소를 제거, 요소가 없으면 에러 발생

set4= {50, 60, 70}
set4remove(60)
print(set5)
# set4.remove(60) #keyError: 60

 

 {50, 70}

 

- discard() : 세트의 요소를 제거, 단 요소가 없어도 에러가 발생하지 않음

set5 = {100, 200, 300}
set5.discard(200)
print(set6)
set5.discard(200)
print(set6)

 

 {100, 300}

 {100, 300}

 

- copy() : 세트를 복사

set6 = {10, 20, 30}
set7 = set6.copy() # set7 != set6 : 다른 메모리
print(set6)
print(set7)
print(id(set6))
print(id(set7))

 

{10, 20, 30}

{10, 20, 30}

136890701629472

136890700660096

 

 - union : 합집합

set8 = {10, 20, 30, 40, 50}
set9 = {30, 40, 50, 60, 70}
result1 = set8.union(set9)
print(result1)
result2 = set8 | set9
print(result2)

 

{70, 40, 10, 50, 20, 60, 30}

{70, 40, 10, 20, 60, 30}

 

- intersection : 교집합

set10 = {10, 20, 30, 40, 50}
set11 = {30, 40, 50, 60, 70}
result1 = set10.intersection(set11) 
print(result1)
result2 = set10 & set11
print(result2)

 

{40, 50, 30}

{40, 50, 30}

 

- difference : 차집합

set12 = {10, 20, 30, 40, 50}
set13 = {30, 40, 50, 60, 70}
result1 = set12.difference(set13)
print(result1)
result2 = set12 - set13
print(result2)

 

 {10, 20}

 {10, 20}

 

- 대칭 차집합 : symmetric_difference

set14 = {10, 20, 30, 40, 50}
set15 = {30, 40, 50, 60, 70}
result1 = set14.symmetric_difference(set15)
print(result1)
result2 = set14 ^ set15
print(result2)

 

{20, 70, 10, 60}

{20, 70, 10, 60}

'코딩 > 파이썬' 카테고리의 다른 글

파이썬 연산자  (0) 2024.03.14
컬렉션 타입 - 딕셔너리  (4) 2024.03.14
파이썬 컬렉션 타입, 튜플  (0) 2024.03.13
파이썬 컬렉션 타입, 리스트  (0) 2024.03.13
문자열 다루기  (2) 2024.03.13