이 자습서에서는 Python 집합의 차이점과 이를 사용하여 두 개 이상의 집합 간의 차이점을 찾는 방법에 대해 배웁니다.
1. Python Set Difference 소개: set 차집합 소개
두 세트의 차이로 인해 두 번째 세트에는 없는 첫 번째 세트의 요소가 포함된 새 세트가 생성됩니다.
다음과 같은 s1 및 s2 세트가 있다고 가정합니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s1과 s2 세트의 차이로 인해 하나의 요소가 있는 다음 세트가 생성됩니다.
{'Python'}
...두 번째 세트에는 존재하지 않는 첫 번째 세트의 'Python' 요소만 있기 때문입니다.
집합 차이는 가환적이지 않습니다. s2와 s1 세트 간의 차이는 다음 세트를 반환합니다.
{'C#'}
다음 벤다이어그램은 s1과 s2 세트 간의 차이점을 보여줍니다.
다음 벤 다이어그램은 s2와 s1 세트의 차이점을 보여줍니다.
Python에서는 set difference() 메서드 또는 set difference 연산자(-)를 사용하여 집합 간의 차이를 찾을 수 있습니다.
1) Python Set difference() 메서드를 사용하여 집합 간의 차이 찾기
Set 유형에는 둘 이상의 집합 간의 차이를 반환하는 difference() 메서드가 있습니다.
set1.difference(s2, s3, ...)
예를 들어 set difference() 메서드를 사용하여 s1과 s2 집합 간의 차이를 찾을 수 있습니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s1.difference(s2)
print(s)
Output:
{'Python'}
이 예제에서는 set difference() 메서드를 사용하여 s2와 s1 집합 간의 차이를 찾는 방법을 보여줍니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s2.difference(s1)
print(s)
Output:
{'C#'}
difference() 메서드는 새로운 집합을 반환합니다. 원래 세트를 변경하지 않습니다.
2) Python 집합 차이 연산자(-)를 사용하여 집합 간의 차이 찾기
difference() 메서드 외에도 Python은 집합 간의 차이를 찾을 수 있는 집합 차이 연산자(-)를 제공합니다.
s = s1 - s2
다음 예에서는 차이 연산자(-)를 사용하여 s1과 s2 집합 간의 차이를 찾습니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s1 - s2
print(s)
그리고 이 예에서는 차이 집합 연산자를 사용하여 s2와 s1 사이의 차이를 반환합니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s2 - s1
print(s)
그리고 이 예에서는 차이 집합 연산자를 사용하여 s2와 s1 사이의 차이를 반환합니다.
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s2 - s1
print(s)
Output:
{'C#'}
2. 차집합() 메서드 대 차집합 연산자(-)
차이 집합() 메서드는 하나 이상의 이터러블(예: 문자열, 목록, 사전)을 허용할 수 있지만 차이 집합 연산자(-)는 집합만 허용합니다.
iterables를 set difference() 메서드에 전달하면 차이 연산을 수행하기 전에 iterables를 집합으로 변환합니다.
다음은 목록과 함께 set difference() 메서드를 사용하는 방법을 보여줍니다.
scores = {7, 8, 9}
numbers = [9, 10]
new_scores = scores.difference(numbers)
print(new_scores)
그러나 iterable과 함께 차집합 연산자(-)를 사용하면 오류가 발생합니다.
scores = {7, 8, 9}
numbers = [9, 10]
new_scores = scores - numbers
print(new_scores)
Error:
TypeError: unsupported operand type(s) for -: 'set' and 'list'
3. Summary
- 두 세트 사이의 차이로 인해 두 번째 세트에는 없는 첫 번째 세트의 요소를 포함하는 새로운 세트가 생성됩니다.
- set difference() 메서드 또는 set difference 연산자(-)를 사용하여 집합 간의 차이를 찾습니다.
refreance: https://www.pythontutorial.net/python-basics/python-set-difference/
'Programing > Python' 카테고리의 다른 글
Python Set Intersection: set 교집합 사용하기 (0) | 2023.03.14 |
---|---|
Python 라이브러리, yfinance 란? (0) | 2023.03.13 |
파이썬 명명규칙은 어떻게 되나요? (0) | 2023.03.13 |
Python Set Union: Set 합집합 사용하기 (0) | 2023.03.13 |
Python Set Comprehension 사용하기 (0) | 2023.03.13 |
댓글