[python] 파이썬 공부하기 - 집합 자료형_set 세트형

[python] 파이썬 공부하기 - 집합 자료형_set 세트형

2022. 9. 11. 23:13페퍼씨의 자기계발/페퍼씨와 파이썬

728x90
반응형

안녕하세요, 페퍼씨입니다.

 

이번 포스팅에선 set 자료형(집합 자료형)에 대해 알아보려고 합니다.

 

set 자료형은 가장 중요한 특징을 두 가지 지닌다.

 

- 중복을 허용하지 않는다 ( 중복되는 것은 자동으로 제거)
- 순서가 없다 => 순서가 없으므로 인덱스로 활용 불가

 

만약 set 형 자료형을 인덱스로 활용하려면 list(), 또는 tuple() 형으로 바꿔준 후 해야한다.

# 리스트형으로 변환
s1 = set([1,2,3])
list1 = list(s1)
print(s1,type(s1))
>> {1, 2, 3} <class 'set'>
print(list1,type(list1))
>> [1, 2, 3] <class 'list'>

# 튜플형으로 변환
s1 = set([1,2,3])
list1 = tuple(s1)
print(s1,type(s1))
>> {1, 2, 3} <class 'set'>
print(list1,type(list1))
>> (1, 2, 3) <class 'tuple'>

 

- 교집합, 합집합, 차집합 구하기

=> set형에서 유용하게 쓰임

 

# 교집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])

a = s1 & s2
print(a)
>>{4, 5, 6}

a1 = s1.intersection(s2)
print(a1)
>>{4, 5, 6}

# 합집합
b = s1 | s2
print(b)
>>{1, 2, 3, 4, 5, 6, 7, 8, 9}
b1 = s1.union(s2)
print(b1)
>>{1, 2, 3, 4, 5, 6, 7, 8, 9}

# 차집합
c = s1 - s2
print(c)
>>{1, 2, 3}
c1 = s1.difference(s2)
print(c1)
>>{1, 2, 3}

 

set 형 자료에 자료 추가하기, 제거하기

- add : 1개의 값만 추가할 때 사용

s1 = set([1,2,3])
a = s1.add(4)
print(s1)
>>{1, 2, 3, 4}

- update : 여러개의 값을 한번에 추가할 때 사용

s1 = set([1,2,3])
b = s1.update([4,5,6,[7,8]])
print(s1)
>>{1, 2, 3, 4, 5, 6, (7, 8)}

 

- remove : 특정 값을 제거할 때 사용 (인덱스 아님 주의, 해당 값을 제거함)

s1 = set(a[1,2,3])
c = s1.remove(1)
print(s1)
>>{2, 3}
반응형