습관처럼

python - set :집합 본문

Language/python

python - set :집합

dev.wookii 2019. 12. 21. 23:44

set은 집합 자료형이다. 정해진 순서가 없고 중복을 허용하지 않기 때문이다.

그래서 set은 중복을 제거할때도 유용하게 이용된다. 

set:


set의 추가, 다중추가, 제거:

def solution():
    a_set={1,2,3}	#set의 기본적인 표현 {}를 사용한다.
    b_set=set([1,2,3,4])	#set은 리스트를 바꿔어서 사용가능하다.
    
    c_set=set([1,1,1,2,2,2,3,3,3,4])	#{1,2,3,4}
    c_set.add(5)						#{1,2,3,4,5}
    c_set.update([6,7,8])				#{1,2,3,4,5,6,7,8}
    c_set.remove(1)						#{2,3,4,5,6,7,8}
    
    
	#[2, 3, 4, 5, 6, 7, 8] set은 순서가 없기 때문에 인덱스에 접근하려면 리스트로 변경해야한다.
    print(list(c_set))    
    
if __name__ == '__main__':
    solution()

set 집합 연산(교집합, 합집합, 차집합)

def solution():
    set1 = set(["a","b","c","c"])   #중복이 존재하지 않는다 c는 한개
    set2 = set(["c","c","d","e"])
    set3 = set() # 공집합
    
    print(set1 & set2)  # set1과 set2의 교집합 {'c'}
    print(set1.intersection(set2))  # set1과 set2의 교집합 {'c'}

    print(set1 | set2)  # set1과 set2의 합집합 {'e', 'd', 'a', 'c', 'b'}
    print(set1.union(set2)) # set1과 set2의 합집합 {'e', 'd', 'a', 'c', 'b'}

    
    print(set1 - set2)  # 순수 set1 {'b', 'a'}
    print(set1.difference(set2))    # 순수 set1 {'b', 'a'}
    print(set2.difference(set1))    # 순수 set2 {'e', 'd'}

    print(set1 ^ set2)  # set1과 set2의 합집합에서 교집합을 뺀 차집합 {'e', 'd', 'b', 'a'}

if __name__ == '__main__':
    solution()

 

'Language > python' 카테고리의 다른 글

python - lambda  (0) 2019.12.22
python - 내장함수  (0) 2019.12.22
python - append 그리고 extend  (0) 2019.12.21
python - List  (0) 2019.12.21
python - map,filter,reduce: 조건 변형  (0) 2019.12.09