티스토리 뷰
728x90
중복된 값을 허용하지 않는 데이터 구조로
집합에 관련된 연산을 쉽게 처리하기 위해 만들어진 자료형입니다.
집합은 중괄호 `{}`를 사용하여 생성하며 각 원소들은 쉼표(,)로 구분됩니다.
# 집합 생성
fruits = {"apple", "banana", "orange"}
# 집합에 원소 추가
fruits.add("grape") # {"apple", "banana", "orange", "grape"}
# 집합에서 원소 삭제
fruits.remove("banana") # {"apple", "orange", "grape"}
# 집합의 원소 개수 확인
num_fruits = len(fruits) # 3
# 집합에 원소가 있는지 확인
print("apple" in fruits) # True
print("kiwi" in fruits) # False
집합은 리스트와 비슷한 형태처럼 보이지만
사용될 때는 몇 가지 차이점이 있습니다.
1. 중복 원소 제거
중복된 값을 허용하지 않으므로 동일한 값을 입력하면 무시됩니다.
2. 순서가 없음
인덱스를 사용하여 원소에 접근할 수 없습니다.
딕셔너리에서 사용되는 키도 없으므로 키로 접근하는 것도 불가능합니다.
3. 집합 연산
교집합, 합집합, 차집합 등의 연산을 지원하여
2개 이상의 집합 원소 중 중복을 제거하거나 집합 간의 관계를 확인할 수 있습니다.
ㅇ 요소 추가하기
s = set()
s.add(3)
print(s) # {3}
s.update(['z', 'y', 'x'])
print(s) # {3, 'z', 'y', 'x'}
ㅇ 요소 수정하기 : 불가
ㅇ 요소 삭제하기
s = set(['a', 'b', 1, 2, '가', '나', 'a', 1, '가'])
print(s.pop()) # 1 (마지막 요소를 꺼냄)
s.remove(2)
print(s) # {'b', 'a', '나', '가'}
s.clear()
print(s) # set()
- 순서가 없다고 했지만 실제 내부적으로 처리되는 순서는 존재합니다.
(코드로 입력된 순서 개념이 없을 뿐입니다)
ㅇ 교집합
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
print(a & b) # {3, 4, 5}
print(a.intersection(b)) # {3, 4, 5}
ㅇ 합집합
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
print(a | b) # {1, 2, 3, 4, 5, 6, 7}
print(a.union(b)) # {1, 2, 3, 4, 5, 6, 7}
ㅇ 차집합
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
print(a - b) # {1, 2}
print(a.difference(b)) # {1, 2}
집합은 데이터에서 중복된 값을 제거하거나 고유한 원소들을 모을 때 유용하게 사용됩니다.
또한, 집합 연산을 활용하여 데이터 분석이나 문제 해결에 도움이 됩니다.
'프로그래밍 > Python' 카테고리의 다른 글
내장 함수 map 사용 시 주의사항 (0) | 2023.08.03 |
---|---|
Jupyter Notebook 과 Jupyter Lab 의 차이점 (0) | 2023.08.03 |
파이썬의 튜플(Tuple) 자료형 (0) | 2023.08.02 |
파이썬의 딕셔너리(Dictionary) 자료형 (0) | 2023.08.02 |
파이썬의 리스트(List) 자료형 (0) | 2023.08.02 |
TAG
- 함수
- JavaScript
- 파이썬
- 동양인
- ibatis
- Android
- 페이지 이동
- window
- MacOS
- 자바스크립트
- 여성가족부
- 스프링
- 구매 가이드
- 특수문자
- JSP
- 주피터 노트북
- EL
- struts
- 데이터베이스
- jstl
- 안드로이드
- 코멧
- 스트럿츠
- 테이블
- 오류
- 기본
- 시각 차이
- 서양인
- 랜덤
- mvc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함
- Total
- Today
- Yesterday