반응형

/************************************************************************************************

-- Title : [PY3.4] 집합 개념 및 관련 함수
-- Reference : itsdong.com
-- Key word : set intersection union difference add clear remove discard len

************************************************************************************************/

# ----------------------------------------------------
# 집합(Sets) : ver 2.3부터 지원
# ----------------------------------------------------

ss = set(['a', 'b', 'c']) # 순서가 없음
print(ss)

ss=set([1,2,3])
print(ss)

ss=set([1,2,3,3,4,4,5]) # 중복을 허용하지 않음
print(ss) # 그래서 인덱싱을 지원하지 않음

ss=set('hello world') # 문자열은 하나의 원소로 처리
print(ss)

# -- 집합을 인덱싱으로 접근하기 위해 리스트나 튜플로 변환
aa=set([1,2,3])
li = list(aa)
print(li[2])


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

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

# -- 교집합(& or intersection)
print(s1&s2)
print(s1.intersection(s2))

# -- 합집합(| or union)
print(s1|s2)
print(s1.union(s2))

# -- 차집합(- or difference)
print(s1-s2)
print(s1.difference(s2))

# -- 대칭 차집합(^)
s1=set('good morning')
s2=set('good night')

print(s1^s2)


# ----------------------------------------------------
# 집합 조작하기
# ----------------------------------------------------

# -- 값 추가
aa=set([1,2,3])
aa.add(99) # 하나의 값 추가
print(aa)

aa.update([10,100,1000])
print(aa)

# -- 값 제거
aa.remove(1000)
print(aa)

# -- 집합 초기화
aa.clear()
print(aa) # 제거되고 set()로 리턴

# -- 하나만 제거
aa=set('hello world')
aa.remove('l')
print(aa)

# -- 제거시 항목이 없어도 에러 발생 안함
aa.discard('x')
print(aa)

# -- 원소 개수 출력
bb=len(aa)
print(bb)






반응형

+ Recent posts