상세 컨텐츠

본문 제목

10. 파이썬 자료형 - 집합 : 특징, 만들기, 요소 추출, 집합연산, 내장함수

Python/Basic Grammar

by groomi 2022. 3. 25. 15:36

본문

6. 집합(Set)

집합은 요소(item)들의 모임이다. 

집합 자료형의 중요한 특징 두 가지가 있다.

- 중복을 허용하지 않는다

한 집합 안에 같은 값이 두 개 이상 있을 필요가 없다. 만약 같은 값이 있다면 하나만 남는다. 

- 순서가 없다

먼저 나온 요소이든 나중에 나온 요소이든 그냥 집합 안의 요소일뿐이다. 리스트, 튜플과 달리 순서가 없기 때문에 인덱싱을 통해서 요소값을 불러오는 것이 불가능하다. 

 

 

6.1 집합 자료형 만들기

- {} 안에 요소 삽입

집합은 순서가 없는 자료형이므로 s2라는 집합에 a, b, c라는 요소가 일정한 순서 없이 저장된 것을 볼 수 있다.

 

- set() 괄호 안에 리스트 형태로 요소 삽입

 

- set() 괄호 안에 문자열 삽입

set() 괄호 안에 리스트 없이는 문자열만 삽입가능하다. 

이런 방식으로 집합을 만들면 문자열 안의 각 문자들이 하나의 원소로서 저장된다.

만약 어떤 단어를 집합에 넣고 싶다면, 그때는 1번 또는 2번의 방법을 활용하자.

s3을 보면, p가 두 번 입력되었지만 집합은 중복을 허용하지 않기에 p가 하나만 남은 것을 알 수 있다.

 

- set() : 빈 집합 만들기

{} 로는 빈 집합이 아닌 빈 딕셔너리가 만들어진다. 

 

 

6.2 집합 요소 값 얻기

- 리스트나 튜플로 변환 후 인덱싱하기

리스트로 변환 후 인덱싱
튜플로 변환 후 인덱싱

리스트나 튜플로 변환 후 인덱싱 할 때 주의할 점은 집합은 순서가 없기에 내가 입력한 순서대로 리스트나 튜플에 저장되는 것이 아니라는 점이다. 따라서 내가 추출하고자 하는 요소값이 어떤 자리에 위치해있는지 확인한 후에 인덱싱한다.

 

- for 반복문을 이용하여 집합의 모든 요소값 얻기

 

 

6.3 집합 연산(교집합/합집합/차집합/대칭차집합)

- 교집합(& 기호 또는 intersection 함수 사용)

 

- 합집합( | 기호 또는 union 함수 사용)

| 기호는 키보드 우측에 엔터 키 위의 \ 표시와 같은 자판에 있는데 shift 키를 함께 눌러 사용해주면 된다.

 

- 차집합(빼기- 기호 또는 difference 함수 사용)

 

- 대칭차집합(^ 기호 또는 symmetric_difference 함수 사용)

* 대칭차집합은 두 집합 중 한 집합에는 속하는데 두 집합 모두에는 속하지 않는 원소들의 모임이다. 

 

 

--------내장함수--------

 

6.4 집합에 값 추가하기

- add : 값 1개 추가

 

-update : 여러 개의 값을 한 번에 추가

update() 괄호 안에 {} 기호를 사용해서 추가할 수도, 리스트 형태로 추가할수도, 문자열 안에 추가할 수도 있다.

다만, 문자열의 경우 각 문자를 하나의 요소로 처리하게 되니, 여러 개의 문자들을 각각 추가하고 싶을 때 사용하면 된다.

 

 

6.5 집합에서 값 삭제하기

- remove : 특정 값 제거

remove는 삭제하려고 인수로 넣은 값이 집합 내에 존재하지 않으면 오류를 발생시킨다.

 

- discard : 특정 값 제거

discard는 삭제하고자 한 요소가 집합에 없다면 집합에 아무런 변화도 일어나지 않고, 오류도 발생하지 않는다.

 

- clear : 모든 값 삭제, 빈 집합으로 만들기

 

관련글 더보기

댓글 영역