7. 컬렉션 타입 세트

2024. 9. 25. 04:35파이썬(python)

1. 세트
* 세트(set)는 중복되지 않는 항목들의 컬렉션입니다.

1)
s1 = {1, 3, 5, 7}
print(s1)
print(type(s1))

-->
{1, 3, 5, 7}
<class 'set'>

2)
s2 = {}
print(s2)
print(type(s2)) #괄호안에 공백으로 두면 안된다

-->
{}
<class 'dict'>

3)
s3 = set([1, 3, 5, 7])
print(s3)
print(type(s3))

-->
{1, 3, 5, 7}
<class 'set'>


4) 
li1 = [1, 2, 3, 4]
print(li1)
s4 = set(li1)
print(s4)
print(type(s4))

-->
[1, 2, 3, 4]
{1, 2, 3, 4}
<class 'set'>

 
5)
s5 = {1, 3, 5, 7 , 9, 1, 5, 10, 7}
print(s5)

-->
{1, 3, 5, 7, 9, 10} 

 
6)
li2 = [1, 3, 5, 3, 7, 9, 1, 5, 10, 7]
print(li2)
s6 = set(li2)
print(s6)

--> 
[1, 3, 5, 3, 7, 9, 1, 5, 10, 7]
{1, 3, 5, 7, 9, 10}

 

2. 세트의 메서드
#add() : 세트의 요소를 추가하는 메서드

1)
s1 = {1, 3, 5 , 7}
print(s1)
s1. add(2)   #순서가 없다
print(s1)
s1.add(4)
print(s1)
s1.add(7)
print(s1)
 
-->
{1, 2, 3, 5, 7}
{1, 2, 3, 4, 5, 7}
{1, 2, 3, 4, 5, 7}


2)
#update() : 세트에 여러 요소를 추가
s1 = {1, 3, 5 , 7}
print(s1)
s1.update([2,4,6,8,10])
print(s1)

-->
{1, 2, 3, 4, 5, 6, 7, 8, 10}


3)
#remove() : 세트의 요소를 제거 단 요소가 없으면 에러가 발생
s1 = {1, 3, 5 , 7}
print(s1)
s1.remove(3)
print(s1)

-->
{1, 3, 5 , 7}
{1, 5, 7}


4)
#discard() : 세트의 요소를 제거, 단 요소가 없어도 에러가 발생하지 않음
s1 = {1, 3, 5 , 7}
print(s1)
s1.discard(3)
print(s1)
s1.discard(3)
print(s1)

-->
{1, 5, 7}
{1, 5, 7}


5)
s1 = {1, 3, 5 , 7}
print(s1)
s2 = s1  #메모리 주소를 복사
print(id(s1))
print(id(s2))
#copy() : set를 복사
s2 = s1.copy()
print(s1)
print(s2)
print(id(s1))
print(id(s2))

-->
139053600787136
139053600787136
{1, 3, 5, 7}
{1, 3, 5, 7}
139053600787136
139052610351872


6)

#union() : 합집합을 계산하여 반환

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

-->

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

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



7)

#intersection() : 교집합을 계산하여 반환
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
result1 = s3.intersection(s4)
print(result1)
result2 = s3 & s4
print(result2)
-->

{40, 50, 30}

{40, 50, 30}

 

8)
#difference () : 차집합을 계산하여 반환
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
result1 = s3.difference(s4)
print(result1)
result2 = s3 - s4
print(result2)
 
-->
{10, 20}
{10, 20}

 

9)
#symmetric_difference() : 대칭 차집합을 계상하여 반환
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
result1 = s3.symmetric_difference(s4)
print(result1)
result2 = s3 ^ s4
print(result2)
-->

{20, 70, 10, 60}
{20, 70, 10, 60}

 

 

 

 

 

 

728x90
LIST

'파이썬(python)' 카테고리의 다른 글

9. 파이썬 연산자  (6) 2024.09.25
8. 컬렉션 타입-딕셔너리  (1) 2024.09.25
6. 컬렉션 타입-튜플  (0) 2024.09.25
5. 컬렉션 타입-리스트  (0) 2024.09.24
4. 문자열 다루기  (2) 2024.09.24