관리 메뉴

승이네 반도체

8/18 (목) 김변수와 시작하는 코딩생활 with 파이썬 스터디 12일차(필수 집합 / 문장 내 단어 오름차순으로 출력하기) 본문

빅데이터 & 딥러닝 스터디/파이썬 스터디(김변수와 시작하는 코딩생활 3기)

8/18 (목) 김변수와 시작하는 코딩생활 with 파이썬 스터디 12일차(필수 집합 / 문장 내 단어 오름차순으로 출력하기)

승이네 2022. 8. 18. 00:10
반응형

 학습 내용 : 파트12. 집합

 

 필수 과제 : 2-2. 문장 내 단어 오름차순으로 출력하기

 

 

12. 집합

 

 12-1. 집합

 

 파이썬은 다른 언어들 보다 사용할 수 있는 자료형이 다양해서 데이터 분석이나 인공지능 개발에 주로 활용됩니다. 이번에 배울 집합은 파이썬에서만 사용되는 자료형입니다.

 

 집합 자료형은 파이썬 내장 함수인 set()을 이용하거나 중괄호를 이용해 만들 수 있습니다.

단, 중괄호를 이용할 경우에는 데이터를 1개 이상 넣어야 합니다.

그러지 않으면 딕셔너리 자료형으로 인식되기 때문입니다.

 

 다음과 같이 3가지 방법을 집합을 만들 수 있습니다.

 

 집합 자료형의 중복을 허용하지 않는 특징 때문에 리스트나 튜플의 중복 값을 제거하려고 할 때 집합 자료형이 자주 사용됩니다.

 

 리스트나 튜플 값을 집합으로 만들어 요소(값)의 개수를 비교하면서 중복된 값이 있는지 여부를 확인할 수 있습니다.

또한 집합으로 만들어 중복값을 제거한 후 다시 리스트나 튜플로 만들어 사용할 수 있습니다.

 

 

 12-2. 합집합, 교집합, 차집합

 

 1) 합집합 : | 또는 union()

 

 합집합은 집합의 모든 요소를 포함하되, 중복된 값은 단 한 번만 구합니다.

 

 다음과 같이 a와 b의 순서는 상관없이 합집합으로 실행됩니다.

 

 

 2) 교집합 : & 또는 intersection()

 

 교집합은 두 집합에서 중복되는 요소만을 구합니다.

 

 다음과 같이 합집합과 마찬가지로 a와 b의 순서는 상관없이 교집합으로 실행됩니다.

 

 

 3) 차집합 : - 또는 difference()

 

 차집합은 다른 집합과 중복되지 않은 요소만을 구합니다. 

 

 합집합과 교집합과는 반대로 순서가 중요합니다!

먼저 나온 집합이 가지고 있는 것을 출력하게 된다고 생각하시면 됩니다.

 

 

 

 12-3. 집합 응용 함수

 

 집합은 값을 추가하거나 제거할 수 있습니다.

 

 1) 데이터 1개 추가하기 : add()

 

 집합.add(데이터)

 

 집합에 데이터를 1개 추가하는 합수입니다.

만약 집합에 동일한 데이터가 이미 존재한다면 아무 변화가 생기지 않습니다.

집합은 자동으로 중복을 제거하기 때문입니다.

 

 -1 같은 경우 추가가 되었지만, 2 같은 경우에는 이미 동일한 데이터가 존재해 변화가 생기지 않았습니다.

 

 

 2) 데이터 여러 개 추가하기 : update()

 

집합.update(데이터)

 

 여러 개의 데이터를 한 번에 추가할 때는 update() 함수를 사용합니다.

 

 update()안에 추가하려는 값을 리스트 형태로 넣습니다.

마찬가지로 집합의 기존 요소와 중복된 데이터는 추가되지 않습니다.

 

 

 3) 원하는 값을 찾아 삭제하기 : remove()

 

 집합.remove(데이터)

 

 리스트에서처럼 집합에 있는 특정한 값을 remove()로 삭제할 수 있습니다.

 

 remove(3)을 입력하니 집합에 3이 없어졌습니다.

 

 그러나 집합에 없는 요소를 삭제하려고 하면 다음과 같이 오류가 발생합니다.

 

 

 

 필수 과제 2-2. 문장 내 단어 오름차순으로 출력하기

 

 입력받은 문자열에서 공백(띄어쓰기)를 기준으로 단어를 구분하고 중복 단어를 삭제한 다음 다음, 결과를 오름차순으로 출력하는 프로그램을 만들어 보세요.

 

 리스트로 문장을 받은 후 집합으로 바꾸면 중복된 단어는 모두 삭제됩니다.

그 후 다시 리스트로 바꿔주고 오름차순으로 정렬해 주는 sort()를 사용하고 리스트를 출력하면 된다.

반응형
Comments