2019년 11월 24일 일요일

파이썬 : set으로 집합연산 하기


파이썬에서 집합연산을 하기 위해서는
set을 활용하면 된다.

[]형태의 리스트와 {} 형태의 set의 가장 큰 차이는
list는 중복을 허용하고
set은 중복을 허용하지 않는다는 점이다.

아래 코드를 통해 list와 set의 이러한 차이를 정확히 알 수 있다.

a = list('apple')
b = set('apple')

print(a)
print(b)
['a', 'p', 'p', 'l', 'e']
{'p', 'a', 'e', 'l'}


set의 가장 유용한 점은 '집합 연산'을 할 수 있다는 것이다.
set을 통해서
2개의 set끼리의 교집합, 차집합, 합집합, 여집합 등 모든 집합 연산이 가능하다.


'''Set의 가장 중요한 특징은 집합 연산에 쓰인다는 것이다.'''
a = set('apple is delicious')
b = set('banana is also yummy')
print("a = {}".format(a))
print("b = {}".format(b))
print()
print("a|b = {}".format(sorted(list(a|b)))) #합집합
print("a-b = {}".format(sorted(list(a-b)))) #차집합
print("b-a = {}".format(sorted(list(b-a)))) #차집합
print("a&b = {}".format(sorted(list(a&b)))) #교집합
print("a^b = {}".format(sorted(list(a^b)))) #여집합
a = {'a', 's', ' ', 'c', 'u', 'i', 'p', 'e', 'l', 'o', 'd'}
b = {'a', 's', ' ', 'y', 'u', 'm', 'i', 'l', 'o', 'b', 'n'}

a|b = [' ', 'a', 'b', 'c', 'd', 'e', 'i', 'l', 'm', 'n', 'o', 'p', 's', 'u', 'y']
a-b = ['c', 'd', 'e', 'p']
b-a = ['b', 'm', 'n', 'y']
a&b = [' ', 'a', 'i', 'l', 'o', 's', 'u']
a^b = ['b', 'c', 'd', 'e', 'm', 'n', 'p', 'y']


댓글 없음:

댓글 쓰기