티스토리 뷰

[Dev]/Python

[Python] 집합(Set)

ossians 2017. 12. 4. 10:57


[Python] 집합(Set)


집합(Set) 이란?


Python 2.3부터 지원하기 시작하였으며 집합(합집합, 교집합, 차집합)에 관련된 자료처리를 쉽게 만들어 줍니다.


집합(Set)은 데이터의 중복을 허용하지 않으며 저장되는 데이터에 대한 순서가 없습니다.

중복을 허용하지 않는 집합(Set)을 활용해서 데이터의 중복을 제거하기 위한 역할을 하기도 합니다.


집합(Set)에 인덱싱으로 접근하려면 리스트 또는 튜플로 변환 후 사용해야 됩니다.




집합(Set) 만들기


"set()" 키워드를 사용하여 숫자나 문자열에 대한 자료형을 만들 수 있습니다.

----------------------------------
코드
s1make = set([1,2,3])
print(s1make)
 
결과
{123}
----------------------------------
 
----------------------------------
코드
s2make = set('python')
print(s2make)
 
결과
{'n''p''h''o''y''t'}
----------------------------------
 
----------------------------------
코드
s3make = set(['python','hello','good'])
print(s3make)
 
결과
{'good''hello''python'}
----------------------------------





집합(Set) 활용하기


합집합 구하기

코드
p1 = set([1,2,3,4,5,6,7])    # p1 집합 생성
p2 = set([6,7,8,9,10,11])    # p2 집합 생성
 
print(p1 | p2)               # "|"는 합집합 기호 입니다.
print(p1.union(p2))          # union은 합집합 메소드입니다.
 
결과
{1234567891011}
{1234567891011}



차집합 구하기

코드
p1 = set([1,2,3,4,5,6,7])    # p1 집합 생성
p2 = set([6,7,8,9,10,11])    # p2 집합 생성
 
print(p1 | p2)               # "-"는 차집합 기호 입니다.
print(p1.difference(p2))     # difference는 차집합 메소드입니다.
 
결과
{12345}
{12345}



교집합 구하기

코드
p1 = set([1,2,3,4,5,6,7])    # p1 집합 생성
p2 = set([6,7,8,9,10,11])    # p2 집합 생성
 
print(p1 & p2)               # "&"는 교집합 기호 입니다.
print(p1.intersection(p2))   # intersection은 교집합 메소드입니다.
 
결과
{67}
{67}





집합(Set) 메소드


집합에 값 추가하기

코드
s3make = set(['python','hello','good'])
s3make.add('hi')    # add 함수로 집합에 데이터 추가 
print(s3make)
 
결과
{'python''hi''hello''good'}



집합에 여러 값 추가하기

코드
s3make = set(['python','hello','good'])
s3make.update(['hi','world','man'])        # update 함수로 집합에 여러 값 추가
print(s3make)
 
결과
{'man''world''hello''python''good''hi'}



집합의 값 삭제하기

코드
s3make = set(['python','hello','good'])
s3make.remove('python')        # remove 함수로 집합의 값 삭제
print(s3make)
 
결과
{'good''hello'}





Frozenset


얼어붙은 집합이란 뜻으로 Frozenset으로 설정된 집합은 추가하거나 삭제하는 메소드를 사용할 수 없습니다.

즉 데이터 변경이 불가능한 집합입니다.

코드        # 데이터 변경이 불가능한 frozenset 집합으로 생성
s3make = frozenset(['python','hello','good'])
s3make.remove('python')
print(s3make)
 
결과
Traceback (most recent call last):
  File "/Users/ossian/Desktop/Git/Python3/Python_Study.py", line 2in <module>
    s3make.remove('python')
AttributeError: 'frozenset' object has no attribute 'remove'






'[Dev] > Python' 카테고리의 다른 글

[Python] IF 제어문  (0) 2017.12.05
[Python] 데이터 입력 받기(Input)  (3) 2017.12.04
[Python] 딕셔너리(Dictionary)  (0) 2017.11.30
[Python] 튜플 인덱싱 & 슬라이싱  (0) 2017.11.30
[Python] 리스트 인덱싱 & 슬라이싱  (0) 2017.11.30
Comments
최근에 올라온 글