본문 바로가기
Programing/Python

Python Set Difference: set 차집합 사용하기

by 멍멍돌이야 2023. 3. 14.
반응형

이 자습서에서는 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/
728x90
반응형

댓글