집합(set)
'''
집합(Set)
-집합은 여러 값들의 모임이며 저장 순서가 보장되지 않고,중복값을 허용하지 않는다.
-집합은 사전과 마찬가지로 {}로 표현하지만 key, value쌍이 아닌 데이터가 하나씩만
존재한다는 점이 사전과 다르다.
-set함수는 공집합을 만들기도 하지만 다른 자료형을 집합으로 변환할수 있다.
'''
names = {'허준', '신사임당', '권율', '홍길동', '허준'}
print(type(names)) # set
print(len(names)) # 중복값을 허용하지 않아 4만 출력된다.
print(names)
# 내장함수 set
s = set()
print(type(s)) # set
# 문자열을 set으로 변경
print(set('programming')) # {'g', 'r', 'p', 'o', 'm', 'n', 'i', 'a'}
print(set([12, 15, 17, 11, 15])) # 리스트를 set으로 변경
dic = {'a':1, 'b':2, 'c':3}
print(set(dic)) # 순서를 마음대로하여 사전을 set으로 바꿈 {'a', 'b', 'c'}
print(list(dic)) # 순서를 지키며 리스트로 변경 ['a', 'b', 'c']
for x in {'가', '나', '다', '라'}:
print(x) #for~in이 사용가능하지만 역시 순서를 지키지 않는다.
'''
-집합은 변경 가능한 자료형이어서 언제든지 데이터를 편집할 수 있다.
-집합의 요소를 추가할 때는 add()메서드를 사용하고, 제거할 때는 remove()를 사용합니다.
결합할때는 update()를 사용합니다.
'''
print("-" * 40)
asia = {'korea', 'japan', 'china'}
print(asia) #{'china', 'japan', 'korea'}
asia.add('thailland')
asia.add('china')
asia.remove('japan')
print(asia) #{'china', 'korea', 'thailland'}
# china는 중복값이여서 저장이 안되고 출력이 랜덤으로 나온다.
asia2 ={'iraq', 'singapore', 'korea'}
# print(asia + asia2) set + set은 연산이 불가능하다.
asia.update(asia2) #updata를 통해 결합한다.
print(asia) # {'china', 'thailland', 'iraq', 'singapore', 'korea'}
'''
집합의 연산
1. 합집합(|) : 두 집합의 전체 요소들의 모음.
2. 교집합(&) : 두 집합의 공통 요소들의 모음.
3. 차집합(-) : 왼쪽 집합의 요소에서 오른쪽 집합의 요소를 제거
4. 배타적 차집합(^) : 합집합 - 교집합
5. 부분집합(<=) : 왼쪽집합이 오른쪽 집합의 부분집합인지의 여부를 조사.
6. 진성 부분집합(<) : 부분집합이면서 추가로 요소가 더 존재하는지를 확인
'''
two = {2, 4, 6, 8, 10, 12}
three = {3, 6, 9, 12, 15}
print("교집합", two & three)
print("합집합", two | three)
print("차집합", two & three)
print("배타적 차집합", two ^ three)
print("-" * 40)
animal = {'호랑이', '사자', '강아지', '치타', '햄스터', '고양이'}
pet = {'강아지', '고양이', '햄스터'}
print(pet <= animal) #True
print(pet < pet) #True
print(pet <= animal) #True
print(pet < pet) #False
'IT' 카테고리의 다른 글
12-1. 파이썬 - 함수 위치가변인수 (0) | 2022.08.02 |
---|---|
12. 파이썬 - 함수 (0) | 2022.08.02 |
11. 파이썬 - 사전을 이용한 실습. (관리 프로그램 코딩) (0) | 2022.08.01 |
10. 파이썬 - 다차원 리스트 , 튜플, 사전 (0) | 2022.08.01 |
9-1. 파이썬 리스트 (0) | 2022.07.29 |