1. 세트 알아보기
- 수학에서의 집합과 동일
- 중복되지 않은 항목들의 집합
2. 세트의 예시
>>> numbers = {2, 1, 3}
>>> numbers
{1, 2, 3}
# 세트의 크기는 len() 함수로 알 수 있다.
>>> len(numbers)
3
# 세트는 집합이기 때문에 요소가 중복되면 자동으로 중복된 요소를 제거한다.
>>> cities = { "Paris", "Seoul", "London", "Berlin", "Paris", "Seoul" }
>>> cities
{'Seoul', 'London', 'Berlin', 'Paris’}
# 비어 있는 세트를 생성하려면 set() 함수를 사용한다.
>>> numbers = set()
# 어떤 항목이 세트 안에 있는지를 검사하려면 in 연산자를 사용하면 된다.
>>> numbers = {2, 1, 3}
>>> if 2 in numbers:
print("집합 안에 2가 있습니다.")
집합 안에 2가 있습니다.
# 세트의 항목은 순서가 없기 때문에 위치를 가지고 세트의 항목에 접근할 수는 없다. 하지만 for 반복문을 이용하여 각 항목들에 접근할 수 있다.
>>> numbers = {2, 1, 3}
>>> for x in numbers:
print(x, end=" ")
123
3. 세트의 구현
- 세트는 모든 요소들을 해싱(hashing)을 이용하여 저장하고 관리 --> 요소들은 해싱가능하여야 함
- 해싱 : 각각의 객체에 식별할 수 있는 숫자 코드를 부여하여 객체를 테이블에 저장하는 것
>>> numbers = {1, 2, [3, 4, 5]}
...
TypeError: unhashable type: 'list'
4. 세트, 리스트, 문자열
# 리스트로부터 세트를 생성하는 것은 가능하다.
>>> set([1, 2, 3, 1, 2, 3])
{1, 2, 3}
# 문자열로부터 세트를 생성하는 것도 가능하다.
>>> set("abcdefa")
{'f', 'a', 'b', 'e', 'c', 'd'}
5. 세트에 요소 추가, 삭제하기
- add() : 세트에 요소 추가
- update() : 요소 여러개를 추가할 때 사용
- discard() : 세트에 요소 삭제
- remove() : 세트에 요소 삭제
- clear() : 세트의 전체 요소 삭제
>>> numbers.add(4)
>>> numbers
{1, 2, 3, 4}
>>> numbers.update([2, 3, 4, 5])
>>> numbers
{1, 2, 3, 4, 5}
# 요소를 삭제할 때는 discard() 메소드를 사용할 수 있다.
>>> numbers.discard(5)
>>> numbers
{1, 2, 3, 4}
>>> numbers.remove(6) # 예외가 발생된다.
# clear() 메소드는 세트의 전체 요소를 지운다.
>>> numbers.clear() # 세트의 크기가 0이 된다.
6. 부분 집합 연산
>>> A = {1, 2, 3}
>>> B = {1, 2, 3}
>>> A == B
True
>>> A = {1, 2, 3, 4, 5}
>>> B = {1, 2, 3}
>>> B < A
True
>>> A > B
True
7. 세트 연산
- in키워드 : 요소가 집합에 포함되어 있는지 검사
>>> mySet = set("banana")
>>> 'a' in mySet
True
>>> 'p' not in mySet
True
8. 집합 연산
8-1 합집합
>>> A = {1, 2, 3}
>>> B = {3, 4, 5}
>>> A | B
{1, 2, 3, 4, 5}
>>> A.union(B)
{1, 2, 3, 4, 5}
>>> B.union(A)
{1, 2, 3, 4, 5}
8-2 교집합
>>> A = {1, 2, 3}
>>> B = {3, 4, 5}
>>> A & B
{3}
>>> A.intersection(B)
{3}
8-3 차집합
>>> A = {1, 2, 3}
>>> B = {3, 4, 5}
>>> A - B
{1, 2}
>>> A.difference(B)
{1, 2}
'Python' 카테고리의 다른 글
[Python] 시퀀스 - 문자열(string) (0) | 2024.06.14 |
---|---|
[Python] 시퀀스 - 딕셔너리(dictionary) (0) | 2024.06.14 |
[Python] 시퀀스 - 튜플(tuple) (1) | 2024.06.14 |
[Python] 기본 함수 (0) | 2024.04.21 |
[Python] List에 대해 알아보자. (0) | 2024.04.15 |