이번에는 ‘집합’을 표현하는 세트(set
)를 좀 더 알아보겠습니다.
과일을 나타내는 fruits
세트를 만들어보겠습니다냠~
>>> fruits = {'apple', 'banana', 'orange
사과, 바나나, 오렌지를 원소로 갖는 fruits
세트를 만들었습니다. 이와 같이 세트는 중괄호({
, }
)를 사용합니다.
아차, 맛있는 망고를 빠뜨렸네요. add()
로 추가할게요.
>>> fruits.add('mango') >>> fruits {'orange', 'apple', 'mango', 'banana'}
이번에는 회사 이름을 나타내는 집합을 만들어볼까요?
>>> companies = set()
회사 이름이 떠오르지 않아서 일단 set()
로 빈 세트를 만들었습니다. 아, 생각 났어요.
>>> companies = {'apple', 'microsoft', 'google'
이제 fruits
와 companies
세트를 만들었습니다. 타입을 확인해볼까요?
>>> type(fruits) <class 'set'> >>> type(companies) <class 'set'>
세트를 이용해 아래와 같이 집합 연산을 사용할 수 있습니다.
>>> fruits & companies {'apple'} >>> fruits | companies {'apple', 'mango', 'microsoft', 'orange', 'google', 'banana'}
아래와 같이 여러 세트를 리스트에 담은 뒤 set의 메서드를 쓸 수도 있습니다.
>>> list_of_sets = [fruits, companies] >>> set.intersection(*list_of_sets) {'apple'} >>> set.union(*list_of_sets) # 합집합 {'google', 'apple', 'banana', 'mango', 'microsoft', 'orange'}
apple
은 fruits
에도 속하고 companies
에도 속하는데, 위 합집합의 결과에 한 번만 나오는 것을 볼 수 있습니다. 이와 같이 세트는 중복 원소를 갖지 않습니다. 또, 원소의 순서가 유지되지 않는 특징도 있습니다.
>>> alphabet = list('google') >>> alphabet ['g', 'o', 'o', 'g', 'l', 'e'] >>> set(alphabet) {'e', 'o', 'g', 'l'}
아참, 집합끼리 뺄셈도 할 수 있어요!
>>> S1 = {1, 2, 3, 4, 5, 6, 7} >>> S2 = {3, 6, 9} >>> S1 - S2 {1, 2, 4, 5, 7}