2-6. set (집합) > 파이썬 기초

본문 바로가기
사이트 내 전체검색

회원로그인

올서베이넷
무료 온라인 설문 사이트
OVITII
웹 프레젠테이션 도구

파이썬 기초

2-6. set (집합)

페이지정보

글쓴이 관리자 조회 31,271 조회 날짜 19-05-02 15:54 / Update:19-05-02 20:40
댓글 0 댓글

SNS 공유

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

내용

Set

 

Set은 중복이 없는 요소들로 구성된다. Set은 Curly Brace(중괄호) { }를 사용하여 표현한다.

내부적으로 순서를 저장하지 않기 때문에 순서를 이용하는 기능들은 사용할 수 없다.

리스트나 튜플을 set으로 변경하기 위해서는 set() 함수를 이용한다. 리스트나 튜플에 중복값이 있을 때, 중복되는 값들은 하나만 남는다. 따라서 중복없이 Unique한 결과를 얻을 때 set을 사용할 수 있다.

 

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

- 순서가 없다(Unordered)

 

 

1. 집합 생성

 

집합 자료형은 다음과 같이 set 키워드를 이용해 만들 수 있다.

 

소스

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

print(s1)

 

결과

{1, 2, 3}

 

위와 같이 set()의 괄호 안에 리스트를 입력하여 만들거나 아래와 같이 문자열을 입력하여 만들 수도 있다.

 

소스

s2 = set("Hello")

print(s2)

 

결과

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

 

 

 

2. 교집합, 합집합, 차집합 구하기

 

set 은 교집합, 합집합, 차집합을 구할 때 유용하게 사용할 수 있다.

 

다음과 같이 2개의 set 자료형을 만든다. s1은 1부터 6까지의 값을 가지고, s2는 4부터 9까지의 값을 가진다.

 

소스

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

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

 

 

1) 교집합

 

교집합은 "&" 기호를 이용하여 구할 수 있다.

 

소스

print(s1 & s2)

 

결과

{4, 5, 6}

 

또는 다음과 같이 intersection 함수를 사용해도 동일한 결과를 얻을 수 있다.

 

소스

print(s1.intersection(s2))

 

결과

{4, 5, 6}

 

s2.intersection(s1)을 사용해도 결과는 같다.

 

 

2) 합집합

 

합집합은 "|" 기호를 이용하여 구할 수 있다. 이때 4, 5, 6처럼 중복해서 포함된 값은 한 개씩만 표현된다.

 

소스

print(s1 | s2)

 

결과

{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

또는 union 함수를 이용하면 된다. 교집합에서 사용했던 intersection 함수와 마찬가지로 s2.union(s1)을 사용해도 동일한 결과를 리턴한다.

 

소스

print(s1.union(s2))

 

결과

{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

 

3) 차집합

 

차집합은 빼기 "-" 기호를 이용하여 구할 수 있다.

 

소스

print(s1 - s2)
print(s2 - s1)

 

결과

{1, 2, 3}

{8, 9, 7}

 

difference 함수를 이용해도 차집합을 구할 수 있다.

소스

print(s1.difference(s2))

print(s2.difference(s1))

 

결과

{1, 2, 3}

{8, 9, 7}

 

 

3. 집합 자료형 관련 함수들

 

1) 1개  값 추가하기(add)

 

이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값을 추가할 때는 add 함수를 사용한다.

 

소스

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

s1.add(4)

print(s1)

 

결과

{1, 2, 3, 4}

 

 

2) 여러 개의 값 추가하기(update)

 

여러 개의 값을 한꺼번에 추가할 때는 update 함수를 사용한다.

 

소스

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

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

print(s1)

 

결과

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

 

 

3) 특정 값 제거하기(remove)

 

특정 값을 제거하고 싶을 때는 remove 함수를 이용한다.

 

소스

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

s1.remove(2)

print(s1)

 

결과

{1, 3}

 

 

 

 

1269735051_1556851090.8013.png

댓글목록 sfs

총 3 건 , 1 페이지
게시물 검색
파이썬 기초 목록
번호 제목 글쓴이 조회 날짜
열람중 관리자 31272 05-02
2 관리자 26289 05-06
3 관리자 35041 05-28
GNUBOARD_M
Copyright © JBMPA.com All rights reserved.