[python] 세트 응용하기

anjiyoo·2024년 3월 6일

Python

목록 보기
25/41
post-thumbnail

1.세트

  • 집합 형태의 자료형
  • {} 중괄호 안에 값을 저장하며 각 값은 콤마로 구분
  • 세트는 대괄호로 특정 요소를 출력할 수 없음
  • 세트는 요소의 순서가 정해져 있지 않아서 출력해보면 - 매번 요소의 순서가 다름
  • 세트는 리스트, 딕셔너리와 달리 세트 안에 스트를 넣을 수 없다
세트 = {값1, 값2, 값3}  # 세트 만들기
세트 = set(반복가능한객체)  # 세트 만들기

값 in 세트  # 세트에 특정 값이 있는지 확인
값 not in 세트  # 세트에 특정 값이 없는지 확인

len(세트)  # 세트의 요소 개수(길이) 구하기

메소드집합 연산자설명
set.union(세트1, 세트2)
set.intersection(세트1, 세트2)&두 세트의 대칭차집합
set.difference(세트1, 세트2)^현재 세트에 다른 세트를 더함
set.symmetric_difference(세트1, 세트2)=
update(다른세트)-현재 세트에서 다른 세트를 뺌
intersection_update(다른세트)&=현재 세트와 다른 세트 중에서 겹치지 않는 요소만 현재 세트에 저장
difference_update(다른세트)-=현재 세트가 다른 세트의 부분집합인지 확인
sysmmetric_difference_update(다른세트)^=현재 세트가 다른 세트와 진부분집합인지 확인
issubest(다른세트)<, <=현재 세트가 다른 세트의 상위집합인지 확인
issuperset(다른세트)>, >=현재 세트가 다른 세트의 진상위집합인지 확인
isdisjoint(다른세트)현재 세트가 다른 세트와 겹치지 않는지 확인
add(요소)세트에 요소를 추가
remove(요소)세트에서 특정 요소를 삭제, 없으면 에러 발생
discard(요소)세트에서 특정 요소를 삭제, 요소가 없으면 그냥 넘어감
pop()세트에서 임의의 요소를 삭제하고 해당 요소를 반환
clear()세트에서 모든 요소를 삭제
copy()세트를 복사하여 새로운 세트 생성

2.세트 만들기

세트 = {값1, 값2, 값3}
fruits = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}
fruits

2-1.한글 문자열을 세트로 만들기

set("안녕하세요")

2-2.세트에 특정 값이 있는지 확인하기

값 in 세트
값 not in 세트
fruits = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}
'orange' in fruits # 세트에 특정 값 있는지 확인
'peach' not in fruits

2-3.set을 사용하여 세트 만들기

set(반복가능한객체)
a = set("apple')

3.집합 연산 사용하기

3-1.| 연산자 (union)

세트1 | 세트2
set.union(세트1, 세트2)

3-2.& 연산자 (intersection)

세트1 & 세트2
set.intersection(세트1,세트2)

3-3.- 연산자 (difference)

세트1 - 세트2
set.difference(a,b)

3-4.^ 연산자 (symmetric_difference)

세트1 ^ 세트2
set.symmetric_difference(세트1, 세트2)

4.집합 연산 후 할당 연산자 사용하기

4-1.|= &= -= ^=연산자 (update)

세트1 |= 세트2
세트1.update(세트2)

세트1 &= 세트2
세트1.intersection_update(세트2)

세트1 -= 세트2
세트1.difference_update(세트2)

세트1 ^= 세트2
세트1.symmetric_difference_update(세트2)

4-2.부분 집합과 상위집합 확인하기

  • 세트는 부분집합, 진부분집합, 상위집합, 진상위집합과 같이 속하는 관계 표현 가능 세트 자료형에는 부등호화 등호 사용
현재세트 <= 다른세트
현재세트.issubest(다른세트)

현재세트 < 다른세트

현재세트 >= 다른세트
현재세트.issubest(다른세트)

현재세트 > 다른세트

4-3.세트가 같은지 다른지 확인하기

  • 세트는 == 연산자를 사용해 서로 같은지 확인
  • 세트는 요소의 순서가 정해져 있지 않으므로 각 요소만 같으면 참
a = {1,2,3,4}
a == {1,2,3,4}
a != {1,2,3}

4-4.세트가 겹치지 않는지 확인하기

  • 현재세트.isdisjoint(다른세트)
a = {1,2,3,4}
a.isdisjoint({5,6,7,8})  # 겹치는 요소가 없음
a.isdisjoint({3,4,5,6})  # a와 3, 4가 겹침

5.세트 조작하기

5-1.세트에 요소를 추가하기 add()

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

5-2.세트에서 특정 요소를 삭제하기 remove() discard()

a.remove(3) # 특정 요소를 삭제하고 요소가 없으면 에러 발생

a.discard(3) # 특정 요소를 삭제하고 요소가 없으면 그냥 넘어감

5-3.세트에서 임의의 요소를 삭제하기 pop()

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

5-4.세트의 모든 요소를 삭제하기 clear()

a.clear()

5-5.세트의 요소 개수 구하기 len()

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

6.세트의 할당과 복사

  • 세트를 만든 뒤 다른 변수에 할당
  • 세트를 다른 변수에 할당하면 세트는 한 개이고 같은 객체
  • 값을 비교할 때는 ==
a = {1,2,3,4}
b = a
a == b

7.반복문으로 세트의 요소를 모두 출력하기

for 변수 in 세트:
	반복할 코드
# 세트 a의 요소 출력
a = {1,2,3,4}
for i in a:
	print(i)

8.세트 컴프리헨션 사용하기

{식 for 변수 in 반복가능한객체}
set(식 for 변수 in 반복가능한객체)
a = {i for i in 'apple'}

8-1.세트 컴프리헨션에 if 조건문 사용하기

{식 for 변수 in 세트 if 조건식}
set(식 for 변수 in 세트 if 조건식)
a = {i for i in 'pineapple' if i not in 'apl'}
profile
기록으로 흔적을 남기는 것을 좋아합니다

0개의 댓글