파이썬의 집합(set)은 수학 시간에 배웠던 집합을 한 번 떠올려보면 이해가 쉬울 것이다.
집합(set)은 중복되는 요소가 없고 순서가 없는 컬렉션으로 집합을 생성할 때는 set() 생성자를 사용하거나 중괄호{ }를 사용한다.
# 집합(Set) 예제
>>> my_set = {1, 3, 3, 1, 5}
>>> my_set
{1, 3, 5}
>>> your_set = set('you are lier')
>>> your_set
{'l', 'y', 'i', 'u', 'o', 'r', 'a', 'e', ' '}
중복되는 값을 제거하고 고유한(unique) 값을 보여준다. 위의 예제를 통해 공백도 하나의 값으로 처리함을 알 수 있다.
집합의 용법은 크게 함수()를 통한 제어와 연산이다.
주로 사용되는 집합 제어 함수만 소개하도록 하겠다.
# add() 예제
>>> my_set = {1, 3, 3, 5, 1}
>>> my_set
{1, 3, 5}
>>> my_set.add(7) # 7을 집합 my_set 에 추가
>>> my_set
{1, 3, 5, 7}
# udate() 예제
>>> my_set.update({8,2,5}) # 8, 2, 5를 집합 my_set에 추가
>>> my_set
{1, 2, 3, 5, 7, 8}
# remove() 예제
# 함수에 2개 넣었더니 한개만 넣으라고 한다.
>>> my_set.remove(3, 5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: remove() takes exactly one argument (2 given)
>>> my_set.remove(3)
>>> my_set
{1, 2, 5, 7, 8}
# copy() 예제
>>> your_set = my_set.copy()
>>> my_set ; your_set
{1, 2, 5, 7, 8}
{1, 2, 5, 7, 8}
# clear() 예제
>>> your_set = {1, 3, 5, 6, 7, 8}
>>> your_set.clear()
>>> your_set
set()
수학에서의 교집합( &, intersection() ), 합집합( |, union() ), 차집합( -, difference() )과 같다고 보면 되고 연산자를 이용하여 집합 간에 연산을 한다고 생각하면 쉽다.
#교집합 예제
>>> set_A = {1, 3, 5, 7, 8}
>>> set_B = {2, 4, 6, 8, 10}
>>> set_A & set_B
{8}
>>> set_A.intersection(set_B)
{8}
#합집합 예제
>>> set_A | set_B
{1, 2, 3, 4, 5, 6, 7, 8, 10}
>>> set_A.union(set_B)
{1, 2, 3, 4, 5, 6, 7, 8, 10}
# 차집합 예제
>>> set_B - set_A
{2, 10, 4, 6}
>>> set_B.difference(set_A)
{2, 10, 4, 6}
위에서 소개한 함수외에도 다양한 제어 함수가 존재한다. (궁금하면 500원~ ㅎㅎㅎ)
다른 제어 함수가 궁금하다면 dir(set)과 help(set.함수명)을 이용해서 확인해보자.
다음 시간에는 딕셔너리(dictionary)에 대해 알아보자.
[python] 파이선 / 파이썬 튜플 (0) | 2020.08.06 |
---|---|
[python] 파이선 / 파이썬 리스트 (0) | 2020.08.04 |
[python] 파이썬 / 파이선 함수 (0) | 2020.07.30 |
[python] 파이선 / 파이썬 조건문, 반복문 (0) | 2020.07.28 |
[python] 파이선 / 파이썬 연산자와 연산 우선순위 (0) | 2020.07.27 |