파이썬(Python)

Set 자료

BlueNoa 2021. 6. 9. 18:33
728x90
반응형

· Set - 집합형 자료

집합의 자료는 순서성이 없고, 중복을 허락하지 않는다.

순서성이 없다는 의미

중복인 데이터를 넣어도 결국엔 하나로 인식해서 결과를 처리하게 된다.

 

<예제>

# set 생성 방법1
a = set('apple - iphone')
print(a)

# set 생성 방법2
b = {1, 2, 3, 4, 5, 5, 4}
print(b)

<결과>​

{'n', '-', 'e', ' ', 'a', 'o', 'i', 'p', 'h', 'l'}
{1, 2, 3, 4, 5}

중복되지 않고 각 요소값 하나씩만 출력된다. 그렇기 때문에 공백이 하이픈(-) 사이에 2개있지만 1개만 출력된다.


· 집합의 종류

집합이라고 하면 당연히 교집합과 합집합, 차집합이 존재한다.

 

1. 합집합 - union, (객체1 | 객체2)

<예제>

b = {1, 2, 3, 4, 5, 5, 4}
c = {3, 6, 8, 12, 32}
print(b.union(c))
print(b | c)

<결과>

{32, 1, 2, 3, 4, 5, 6, 8, 12}

중복이 되는 자료는 전부 하나만 출력되는 것을 알 수 있다.

 

 

2. 교집합 - intersection, (객체1 & 객체2)

<예제>

b = {1, 2, 3, 4, 5, 5, 4}
c = {3, 6, 8, 12, 32}
print(b.intersection(c))
print(b & c)

<결과>

{3}

 

 

3. 차집합 - (객체1 - 객체2)

<예제>

b = {1, 2, 3, 4, 5, 5, 4}
c = {3, 6, 8, 12, 32}
print(b-c)
print(c-b)

<결과>

{1, 2, 4, 5}
{32, 8, 12, 6}

 


· 집합 자료형 관련 함수

1. add() - 값을 1개씩 추가하기

<예제>

d = set([1, 3, 5]) # 리스트 타입 자료도 set기능으로 형 변환 가능
d.add(7) # 7이라는 데이터를 추가한다.
print(d)

<결과>

{1, 3, 5, 7}

 

2. update() - 값 여러 개 추가하기

<예제>

d = set([1, 3, 5]) # 리스트 타입 자료도 set기능으로 형 변환 가능
d.update([7, 11, 13])
print(d)

<결과>

{1, 3, 5, 7, 11, 13}

 

 

3. remove() - 특정 값 제거하기 & discard()

<예제>

d = set([1, 3, 5]) # 리스트 타입 자료도 set기능으로 형 변환 가능
d.update([7, 11, 13])
d.remove(7)
print(d)
print(d.discard(8)) # 존재하지 않는 값을 지우라고 명령해도 오류가 발생하지 않는다.

<결과>

{1, 3, 5, 11, 13}
None

​존재하지 않는 값을 지우라고 명령 했으므로 None이 출력된다.

 

 
728x90
반응형