본문 바로가기
Programing/Python

Python Set Intersection: set 교집합 사용하기

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

이 자습서에서는 Python 집합 교집합과 이를 사용하여 두 개 이상의 집합을 교차하는 방법에 대해 배웁니다.

 

Python에서는 집합 교차() 메서드 또는 집합 교차 연산자(&)를 사용하여 두 개 이상의 집합을 교차할 수 있습니다.

new_set = set1.intersection(set2, set3)
new_set = set1 & set2 & set3

Intersection() 메서드와 & 연산자는 성능이 동일합니다.

 

1. Python set intersection: set 교집합 소개

두 개 이상의 세트를 교차하면 모든 세트에 존재하는 요소로 구성된 새로운 세트를 얻게 됩니다.

다음 두 세트 s1과 s2가 있다고 가정합니다.

s1 = {'Python', 'Java','C++'}
s2 = {'C#', 'Java', 'C++' }

이 두 집합의 교집합은 'Java' 및 'C++' 두 요소를 포함하는 새 집합을 반환합니다.

s = {'Java', 'C++'}

... 두 세트 모두에 존재하는 유일한 요소이기 때문입니다.

다음 벤다이어그램은 두 집합 s1과 s2의 교집합을 보여줍니다.

세트 교차에는 많은 유용한 응용 프로그램이 있습니다. 예를 들어 교차 설정을 사용하여 소셜 네트워킹 애플리케이션에서 두 친구의 공통 즐겨찾기를 찾거나 HR 애플리케이션에서 둘 이상의 직원의 공통 기술을 검색할 수 있습니다.

Python에서는 set Intersection() 메서드 또는 집합 교차 연산자(&)를 사용하여 두 개 이상의 집합을 교차시킬 수 있습니다.

 

1) Python set Intersection() 메서드를 사용하여 두 개 이상의 집합을 교차

이 예제에서는 set Intersection() 메서드를 사용하여 두 개 이상의 집합을 교차하는 방법을 보여줍니다.

new_set = set1.intersection(set2, set3, ...)

다음은 s1 및 s2 집합을 교차하기 위해 Intersection() 메서드를 사용하는 방법을 보여줍니다.

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}

s = s1.intersection(s2)

print(s)

Output:

{'C++', 'Java'}

 

2) Python 집합 교차(&) 연산자를 사용하여 두 개 이상의 집합을 교차

Python은 두 개 이상의 집합을 교차시킬 수 있는 집합 교차 연산자(&)를 제공합니다.

new_set = s1 & s2 & s3 & ...

다음 예에서는 집합 교차 연산자(&)를 사용하여 집합 s1 및 s2를 교차합니다.

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}

s = s1 & s2

print(s)

Output:

new_set = s1 & s2 & s3 & ...

 

2. Intersection() 메서드 설정 vs Intersection 연산자 설정(&)

교차 집합 연산자는 집합만 허용하는 반면, 교차 집합() 메서드는 문자열, 목록 및 사전과 같은 모든 이터러블을 허용할 수 있습니다.

 

iterables를 Intersection() 메서드에 전달하면 교차하기 전에 iterables를 set으로 변환합니다.

그러나 교집합 연산자(&)를 iterables와 함께 사용하면 오류가 발생합니다.

다음 예제에서는 Intersection() 메서드를 사용하여 집합을 목록과 교차시킵니다.

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers.intersection(scores)

print(numbers)

Output:

{2, 3}

교집합 연산자(&)를 대신 사용하면 오류가 발생합니다.

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers & scores

print(numbers)

Output:

TypeError: unsupported operand type(s) for &: 'set' and 'list'

 

3. Summary

  • 두 개 이상의 세트의 교집합은 모든 세트에 존재하는 요소를 반환합니다.
  • Intersection() 메서드를 사용하거나 교집합 연산자(&)를 설정하여 두 개 이상의 집합을 교차합니다.
         

 

 

 

refreance: https://www.pythontutorial.net/python-basics/python-set-intersection/
728x90
반응형

댓글