나 개발자 진짜 되냐?

2일차 파이썬 프로그래밍 기초_집합편 본문

파이썬을 시작했어요!

2일차 파이썬 프로그래밍 기초_집합편

Snow Rabbit 2022. 12. 13. 22:13

집합을 배워보자

 

집합! 에는 set이라는 키워드를 사용한다고 한다.

 

s1 = set([1,2,3])

s1      →      {1, 2, 3}

 

s2 = set("Hello")

s2      →      {'e', 'H', 'l', 'o' }

 

문자열 그리고 리스트도 사용할 수 있다.

 

set에는 중요한 특징이 두가지 있다.

 

1. 중복을 허용하지않는다

2. 순서가 없다.

 

이렇게 순서가 없기 때문에 인덱싱을 사용할 수가 없다.

인덱싱으로 접근하기 위해서는

이 집합 set을 리스트나 튜플로 변환해줘야 한다.

 

s = set([1,2,3])

set  >  list

l = list(s)

l      →      [1,2,3]

l[1]      →      2

 

set  >  tuple

t = tuple(s)

t      →     ( 1, 2, 3 )

t[1]      →     2

 

 

집합인 만큼 교집합 합집합 차집합이 안 나올 수가 없지!

 

s1 = set([1, 2, 3, 4, 5, 6])

s2 = set([4, 5, 6, 7, 8, 9])

 

교집합 ===>  &     or     intersection

 

s1 & s2      →     { 4, 5, 6 }

또는

s1.intersection(s2)      →      { 4, 5, 6 }

s2.intersection(s1)도 동일한 결과를 얻을 수 있다.

 

 

합집합 ===>  |     or     union

 

s1 | s2       →      { 1, 2, 3, 4, 5, 6, 7, 8, 9 }

또는

s1.union(s2)       →      { 1, 2, 3, 4, 5, 6, 7, 8, 9 }

s2.union(s1)도 동일한 결과를 얻을 수 있다.

 

중복한 값은 한번 써준다.

 

 

차집합 ===>   -      or     difference

 

s1 - s2       →     { 1, 2, 3 }

s2 - s1       →     { 7, 8, 9 }

 

또는

 

s1.difference(s2)       →      { 1, 2, 3 }

s2.difference(s1)       →      { 7, 8, 9 }

 

 

★ 집합 관련 함수

 

값 1개 추가하기 ===> add

 

s = set([1, 2, 3])

s.add(4)

s       →      {1, 2, 3, 4}

 

값 여러 개 추가하기 ===> update

 

s = set([1, 2, 3])

s.update([4, 5, 6])

s       →      {1, 2, 3, 4, 5, 6}

 

특정한 값 제거하기 ===> remove

 

s = set([1, 2, 3])

s.remove(2)

s       →      {1, 3}

 

그으읏