세트 사용하기

매일 공부(ML)·2022년 1월 8일
0

Python

목록 보기
19/38

[세트(집합) 사용하기]

1)만들기
요소 중복X
특정 요소만 출력X (인덱스 사용불가)
세트 안에 세트 넣기는 불가능
frozenset안에 frozenset넣기 가능

세트 = {값1, 값2, 값3}

2) 특정 값 있는지 확인
값 in 세트

3) 특정 값 없는지 확인
값 not in 세트

4) set를 사용하여 세트 만들기
set(반복가능한객체)

a = set('apple') # 유일한 문자만 세트로 만듦
a
{'e', 'l', 'a', 'p'}

b = set(range(5))
b
{0, 1, 2, 3, 4}

c = set()
c
set()

5) 합집합(OR)
세트1 | 세트2
set.union(세트1, 세트2)

6) 교집합(AND)
세트1 & 세트2
set.intersection(세트1, 세트2)

7) 차집합(-)
세트1 - 세트2
set.difference(세트1, 세트2)

8)대칭 차집합(xor)
세트1 ^ 세트2
set.symmetric_difference(세트1, 세트2)

9)집합 연산 후 할당 연산자 사용
세트 자료형에 |, &, -, ^ 연산자와 할당 연산자 =을
함께 사용하면 집합 연산의 결과를 변수에
다시 저장(할당)합니다.

10) 부분 집합과 상위집합 확인하기
현재세트 <= 다른세트
현재세트.issubset(다른세트)

i)진부분집합
현재세트 < 다른세트

ii)상위집합
현재세트 >= 다른세트
현재세트.issuperset(다른세트)

iii)진상위집합
현재세트 > 다른세트

11)세트가 겹쳐있는지 확인
현재세트.isdisjoint(다른세트)

True-겹치는 요소가 없음/False-겹치는 요소가 있음

12)세트에 요소 추가
add(요소)

a = {1, 2, 3, 4}
a.add(5)
a
{1, 2, 3, 4, 5}

13)세트에 요소 삭제

i)
remove(요소)

a.remove(3)
a
{1, 2, 4, 5}

ii)
discard(요소)
-요소가 있으면 삭제 없으면 넘어감

a.discard(2)
a
{1, 4, 5}
a.discard(3)
a
{1, 4, 5}

iii)
pop(요소)
-임의의 요소 삭제

a = {1, 2, 3, 4}
a.pop()
1
a
{2, 3, 4}

iv)
clear()
-세트에서 모든 요소 삭제

a.clear()
a
set()

14)세트의 요소 개수 구하기

a = {1, 2, 3, 4}
len(a)
4

15)할당과 복사

세트 a와 b는 별개이므로 한쪽의 값을 변경해도
다른 세트에 영향을 미치지 않습니다.
다음과 같이 세트 b에 요소를 추가하면
세트 a는 그대로이고 세트 b만 바뀝니다.

a = {1, 2, 3, 4}
b = a.copy()
b.add(5)
a
{1, 2, 3, 4}
b
{1, 2, 3, 4, 5}

16)반복문으로 세트의 요소 모두 출력

세트= {값1,값2,값3,...}
for 변수 in 세트:
반복할 코드

17)세트 표현식 사용하기
+)

세트 = {식 for 변수 in 반복가능한객체}

a = {i for i in 'apple'}
a
{'l', 'p', 'e', 'a'}

set(식 for 변수 in 반복가능한객체)

18)세트 표현식에 if 조건문 사용
{식 for 변수 in 세트 if 조건식}

a = {i for i in 'pineapple' if i not in 'apl'}
a
{'e', 'i', 'n'}

set(식 for 변수 in 세트 if 조건식)


참고 | 한글 문자열을 세트로 만들기 set을 사용하여 한글 문자열을 세트로 만들면 다음과 같이 음절 단위로 세트가 만들어집니다.

set('안녕하세요')
{'녕', '요', '안', '세', '하'}


참고 | 프로즌 세트 파이썬은 내용을 변경할 수 없는 세트도 제공합니다.

프로즌세트 = frozenset(반복가능한객체)

a = frozenset(range(10))
a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

A,B = map(int,input().split())
a = {i for i in range(1, A+1) if A%i==0}
b = {i for i in range(1, B+1) if B%i==0}
profile
성장을 도울 아카이빙 블로그

0개의 댓글