👨👩👦👦
4.4.5. 셋
1. Set
집합 자료형은 중복을 허용하지 않으며, 순서가 없는 자료형입니다.
입력
출력
위의 예제를 보면 같은 숫자들은 다 제거되고 하나만 남은 것을 볼 수 있습니다.
입력
출력
문자열을 넣었을 경우 실행할 때마다 순서가 계속 달라지는 것을 볼 수 있습니다.
1.1 add
집합 자료형에 값을 추가할 때는 add를 사용합니다.
입력
출력
1.2 update
값을 여러 개를 추가할 때에는 update를 사용합니다.
입력
출력
1.3 remove
특정 값을 제거하고 싶을 때에는 remove를 사용합니다.
입력
출력
1.4 discard
remove처럼 특정 값을 제거하고 싶을 때 사용하는 함수인 discard도 있습니다.
입력
출력
discard는 지우려는 값이 없으면 오류를 출력하지 않으며, remove는 오류를 출력합니다. 두 개의 함수를 구분해서 사용해주세요.
1.5 pop
값을 순서대로 하나씩 지우고 싶을 때 pop을 사용합니다.
입력
출력
1.6 교집합
집합 자료형은 집합이라는 이름에 맞게 교집합, 합집합, 차집합을 구할 수 있습니다.
교집합은 & 혹은 intersection 함수를 사용하여 구합니다.
입력
출력
1.7 합집합
합집합은 | 또는 union 함수를 사용하여 구합니다.
입력
출력
1.8 차집합
차집합은 - 또는 difference 함수를 사용하여 구합니다.
입력
출력
1.9 대칭차집합
두 개의 집합이 있을 때 공통된 부분을 제외한 나머지 부분을 대칭차집합이라고 하며,
^ 또는 symmetric_difference 함수를 사용합니다.
입력
출력
1.10 issubset
새로운 값에 원래의 값이 속하는지 확인하고 싶을 때는 issubset 함수를 사용합니다.
입력
출력
1.11 isdisjoint
데이터가 서로 겹치는 부분이 있는지 확인하고 싶을 때는 isdisjoint 함수를 사용합니다.
입력
출력
입력
출력
1.12 Symmetric_difference_update
지금 셋과 비교할 다른 셋들 중에서 겹치지 않는 요소만 출력하고 싶을 때 symmetric_difference_update함수를 사용합니다.
입력
출력
number_set = set([1, 1, 2, 2, 3, 3, 4])
print(number_set)
number_set = set('apple coffee')
print(number_set)
{'o', 'e', 'c', ' ', 'l', 'f', 'p', 'a'}
menu = set(['americano', 'cafe latte'])
menu.add('ice coffee')
print(menu)
{'cafe latte', 'ice coffee', 'americano'}
menu = set(['americano', 'cafe latte'])
menu.update(['ice coffee', 'ice tea', 'green tea'])
print(menu)
{'ice coffee', 'green tea', 'americano', 'ice tea', 'cafe latte'}
menu = set(['americano', 'cafe latte'])
menu.remove('cafe latte')
print(menu)
s = {2, 3, 4, 5, 6}
s.discard(1)
s = {3, 4, 5, 6, 7, 8}
s.pop()
s
s.pop
s
s.pop
s
{3, 4, 5, 6, 7, 8}
{4, 5, 6, 7, 8}
{5, 6, 7, 8}
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte'])
other_cafe = set(['americano', 'water', 'green tea'])
print(my_cafe & other_cafe)
print(my_cafe.intersection(other_cafe))
{'water', 'americano'}
{'water', 'americano'}
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte'])
other_cafe = set(['americano', 'water', 'green tea'])
print(my_cafe | other_cafe)
print(my_cafe.union(other_cafe))
{'americano', 'green tea', 'cafe latte', 'yogurt strawberry blended', 'water'}
{'americano', 'green tea', 'cafe latte', 'yogurt strawberry blended', 'water'}
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte'])
other_cafe = set(['americano', 'water', 'green tea'])
print(my_cafe - other_cafe)
print(my_cafe.difference(other_cafe))
{'yogurt strawberry blended', 'cafe latte'}
{'yogurt strawberry blended', 'cafe latte'}
s = {1, 2, 3, 4}
ss = {3, 4, 5, 6}
s^ss
set.symmetric_difference(s, ss)
{1, 2, 5, 6}
{1, 2, 5, 6}
s = {1, 2, 3, 4}
ss = {3, 4, 5, 6}
s.issubset({1, 2})
s.issubset({1, 2, 3, 4, 5, 6})
s < {1, 2, 3, 4, 5, 6} #진부분집합(<->진상위집합)
s <= {1, 2, 3, 4, 5, 6} #부분집합(<->상위집합)
s = {1, 2, 3, 4}
ss = {3, 4, 5, 6}
s.isdisjoint(ss)
False #겹치는 부분이 있으면 False, 없으면 True가 출력됩니다.
s = {1, 2}
ss = {3, 4}
s.isdisjoint(ss)
1 in s
len(s) #s의 길이를 출력합니다.
s = {1, 2, 3}
ss = {3, 4, 5}
s.symmetric_difference_update(ss)
s
{1, 2, 4, 5} #겹치는 요소인 3은 제외된 것을 알 수 있습니다.