이 자습서에서는 Python Set을 배우게 될 것입니다. 이전 글에서는 Python String에 대해 배웠습니다. 여러분은 여기에서 그것을 배울 수 있습니다 here.
Python Set
Python Set은 고유한 요소의 정렬되지 않은 컬렉션입니다. 리스트가 있고 리스트의 고유한 항목만 필요한 경우 Python Set을 사용할 수 있습니다. 마찬가지로 입력에서 고유한 항목만 필요한 경우 Python set이 도움이 될 것입니다. 항목을 추가하거나 삭제할 수 있습니다. 중괄호 사이에 요소를 배치하여 세트를 초기화할 수 있습니다. 다른 시퀀스와 마찬가지로 하나의 세트에는 여러 데이터 유형의 요소가 있을 수 있습니다. 또한 set() 함수를 사용하여 목록에서 세트를 만들 수도 있습니다. 다음 예제는 세트를 초기화하는 데 대한 몇 가지 아이디어를 제공합니다.
#단일 데이터 유형을 포함하는 세트
set1 = {1, 2, 3, 4, 2, 3, 1}
print(set1)
#다중 데이터 유형을 포함하는 세트
set2 = {1, 2, 3, (1, 2, 3), 2.45, "Python", 2, 3}
print(set2)
#목록에서 세트 생성
theList = [1, 2, 3, 4, 2, 3, 1]
theSet = set(theList)
print(theSet)
결과는 다음과 같습니다.
================== RESTART: /home/imtiaz/set1.py ==================
set([1, 2, 3, 4])
set([1, 2, 3, 2.45, 'Python', (1, 2, 3)])
set([1, 2, 3, 4])
>>>
Python Set에 요소 추가
이전 예제에서는 Python 세트를 직접 초기화하는 방법을 배웠습니다. 세트에 요소를 추가해야 할 경우 add() 함수를 사용하여 수행할 수 있습니다. 그러나 이 함수는 하나의 요소만 추가할 수 있습니다. 리스트나 세트와 같은 iterable 요소를 추가하려면 update() 함수를 사용할 수 있습니다. 다음 예제를 통해 이해할 수 있습니다.
#빈 세트를 초기화합니다
theSet = set()
#add() 함수를 사용하여 하나의 요소를 추가합니다
theSet.add(1)
theSet.add(2)
theSet.add(3)
theSet.add(2)
#다른 데이터 유형을 추가합니다
theSet.add('hello')
#update() 함수를 사용하여 iterable 요소를 추가합니다
theSet.update([1,2,4,'hello','world']) #list as iterable element
theSet.update({1,2,5}) #set as iterable element
print(theSet)
다음 코드의 출력은 다음과 같을 것입니다.
================== RESTART: /home/imtiaz/set_new.py ==================
set([1, 2, 3, 4, 5, 'world', 'hello'])
>>>
Python 세트에서 요소 제거
Python 세트에서 요소를 제거하는 데 사용되는 함수는 두 가지입니다. 하나는 remove()이고 다른 하나는 discard() 함수입니다. 제거하려는 요소가 세트에 없으면 remove() 함수는 예외를 발생시킵니다. 그러나 discard 함수는 이렇게 아무것도 수행하지 않습니다. 다음 코드를 통해 이를 확인할 수 있습니다.
theSet = {1,2,3,4,5,6}
#discard() 함수를 사용하여 3을 제거합니다
theSet.discard(3)
print(theSet)
#3을 다시 제거하기 위해 discard() 함수를 호출합니다
theSet.discard(3) #This won't raise any exception
print(theSet)
#5를 제거하기 위해 remove() 함수를 호출합니다
theSet.remove(5)
print(theSet)
#5를 제거하기 위해 remove() 함수를 호출합니다 again
theSet.remove(5) #this would raise exception
print(theSet) #this won't be printed
출력 결과는 다음과 같을 것입니다.
================== RESTART: /home/imtiaz/set_del.py ==================
set([1, 2, 4, 5, 6])
set([1, 2, 4, 5, 6])
set([1, 2, 4, 6])
Traceback (most recent call last):
File "/home/imtiaz/set_del.py", line 16, in
theSet.remove(5) #this would raise exception
KeyError: 5
>>>
파이썬 집합 연산
일부 수학적인 집합 연산인 합집합, 교집합, 차집합에 대해 익숙할 것입니다. 우리는 파이썬 집합을 사용하여 이를 수행할 수도 있습니다. 이제 그 방법에 대해 배워보겠습니다.
파이썬 집합 합집합
합집합은 두 집합을 병합하는 작업입니다. 즉, 합집합은 두 집합의 모든 고유한 요소를 포함한 다른 집합을 생성합니다. 예를 들어, {1, 2, 3, 4}와 {2, 3, 5, 7}은 두 집합입니다. 이들에 대해 합집합 연산을 수행하면 {1, 2, 3, 4, 5, 7}을 얻습니다. 이를 union() 함수를 사용하여 얻을 수 있습니다.
파이썬 집합 교집합
다시 말해, 교집합은 두 집합의 공통된 고유한 요소를 얻는 작업입니다. 예를 들어, {1, 2, 3, 4}와 {2, 3, 5, 7}은 두 집합입니다. 이들을 교집합하면 {2, 3}을 얻습니다. 교집합 연산은 intersection() 함수로 수행됩니다.
Python 세트 차집합
이제, 차집합 연산은 두 세트를 비교하고 세트 A에는 있지만 세트 B에는 공통적이지 않은 항목을 포함하는 새로운 세트를 생성합니다. 예를 들어, A = {1, 2, 3, 4}와 B = {2, 3, 5, 7}인 두 세트가 있다고 가정해 보겠습니다. 그러면 A – B 연산은 {1, 4}를 생성할 것입니다. 또한, B – A는 {5, 7}을 생성할 것입니다. 차집합 연산은 difference() 함수에 의해 수행됩니다… 다음 코드는 파이썬 프로그래밍에서 이러한 세트 연산을 수행하는 방법에 대한 아이디어를 제공합니다.
A = {1, 2, 3, 4} #initializing set A
B = {2, 3, 5, 7} #initializing set B
union_operation = A.union(B)
print("A union B :")
print(union_operation)
intersection_operation = A.intersection(B)
print("A intersection B :")
print(intersection_operation)
difference_operation = A.difference(B)
print("A-B :")
print(difference_operation)
difference_operation = B.difference(A)
print("B-A :")
print(difference_operation)
얻게되는 출력은 다음과 같습니다
================== RESTART: /home/imtiaz/set_op.py ==================
A union B :
set([1, 2, 3, 4, 5, 7])
A intersection B :
set([2, 3])
A-B :
set([1, 4])
B-A :
set([5, 7])
>>>
그러니까, 오늘은 여기까지입니다. 파이썬 세트에 대해 잘 배웠기를 바랍니다. 추가 질문이 있으시면 댓글 상자에 질문을 작성하십시오. 답변해 드리겠습니다. 참고: 공식 문서
Source:
https://www.digitalocean.com/community/tutorials/python-set