Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 세트 연산.

<시간/>

수학에서 집합은 그 자체로 대상으로 간주되는 별개의 대상의 모음입니다. 예를 들어, 숫자 2, 4, 6은 별도로 고려하면 별개의 대상이지만 집합적으로 고려하면 {2,4,6}이라고 쓰여진 크기 3의 단일 세트를 형성합니다.

세트 작업

작업 표기법 의미
교차로 A ∩ B 및 모두에 있는 모든 요소
연합 A ∪ B 둘 중 하나 또는 둘 다에 있는 모든 요소
차이 A ~ B 안에 있지만 안에 있지 않은 모든 요소
보완 (또는) 에 없는 모든 요소

파이썬에서 리스트에 비해 집합을 사용하는 주요 장점은 특정 요소가 집합의 구성원인지 여부를 확인하는 최적화된 기능을 가지고 있다는 것입니다. 이것은 해시 테이블 데이터 구조를 기반으로 합니다.

집합 방법

add(x) 메소드: 항목 x가 존재하지 않는 경우 세트에 추가합니다.

A = {"AA", "BB", "CC"}
A.add("VV")

이것은 A 세트에 VV를 추가합니다.

결합 방법: 두 집합의 합집합을 반환합니다. 2개의 기존 집합 사이에 연산자 '|'를 사용하는 것은 My_Set1.union(My_Set2)을 작성하는 것과 같습니다.

A = {"AA", "BB", "CC"}
B = {"MM", "NN"}
Z = A.union(B)
OR
Z = A|B

집합 모집단 집합에는 A와 B의 구성 요소가 있습니다.

교차 방법: 두 개의 주어진 집합의 교집합을 반환합니다. 이 작업에서 '&' 연산자를 사용할 수 있습니다.

S = A.intersection(B)

세트 피해자는 A와 B의 공통 요소를 포함합니다.

차이 방식: 첫 번째 집합에는 있지만 두 번째 집합에는 없는 모든 요소를 ​​포함하는 집합을 반환합니다. 여기서 '-' 연산자를 사용할 수 있습니다.

W = A.difference(B)
OR
S = A – B

안전 설정에는 A에는 있지만 B에는 없는 모든 요소가 있습니다.

clear() 메소드: 기존 세트 전체가 비어 있게 됩니다.

B.clear()

B 세트 클리어

집합 연산자

세트 및 고정 세트는 다음 연산자를 지원합니다. -

key in s         # containment check
key not in s   # non-containment check
s1 == s2       # s1 is equivalent to s2
s1 != s2       # s1 is not equivalent to s2
s1 <= s2    # s1is subset of s2 s1 < s2     # s1 is proper subset of s2 s1 >= s2             # s1is superset of s2
s1 > s2     # s1 is proper superset of s2
s1 | s2        # the union of s1 and s2
s1 & s2        # the intersection of s1 and s2
s1 – s2        # the set of elements in s1 but not s2
s1 ˆ s2        # the set of elements in precisely one of s1 or s2

예시 코드

# Python program to demonstrate working# of 
# Set in Python 
# creating two sets 
My_Set1 = set()
My_Set2 = set()
# Adding elements to My_Set1
for i in range(1, 6): 
   My_Set1.add(i) 
# Adding elements to My_Set2
for i in range(3, 8): 
   My_Set2.add(i) 
print("My_Set1 = ", My_Set1) 
print("My_Set2 = ", My_Set2) 
print("\n") 
# Union of My_Set1 and My_Set2
My_Set3 = My_Set1 | My_Set2# My_Set1.union(My_Set2) 
print("Union of My_Set1&My_Set2: My_Set3 = ", My_Set3) 
# Intersection of My_Set1 and My_Set2
My_Set4 = My_Set1&My_Set2# My_Set1.intersection(My_Set2) 
print("Intersection of My_Set1&My_Set2: My_Set4 = ", My_Set4) 
print("\n") 
# Checking relation between My_Set3 and My_Set4
if My_Set3>My_Set4: # My_Set3.issuperset(My_Set4) 
   print("My_Set3 is superset of My_Set4") 
elif My_Set3<My_Set4: # My_Set3.issubset(My_Set4) 
   print("My_Set3 is subset of My_Set4") 
else : # My_Set3 == My_Set4
   print("My_Set3 is same as My_Set4") 
# displaying relation between My_Set4 and My_Set3
if My_Set4<My_Set3: # My_Set4.issubset(My_Set3) 
   print("My_Set4 is subset of My_Set3") 
   print("\n") 
# difference between My_Set3 and My_Set4
My_Set5 = My_Set3 - My_Set4
print("Elements in My_Set3 and not in My_Set4: My_Set5 = ", My_Set5) 
print("\n") 
# check if My_Set4 and My_Set5 are disjoint sets 
if My_Set4.isdisjoint(My_Set5): 
   print("My_Set4 and My_Set5 have nothing in common\n") 
# Removing all the values of My_Set5
My_Set5.clear()
print("After applying clear on sets My_Set5: ") 
print("My_Set5 = ", My_Set5) 
의 모든 값

출력

My_Set1 = {1, 2, 3, 4, 5}
My_Set2 = {3, 4, 5, 6, 7}
Union of My_Set1&My_Set2: My_Set3 = {1, 2, 3, 4, 5, 6, 7}
Intersection of My_Set1&My_Set2: My_Set4 = {3, 4, 5}
My_Set3 is superset of My_Set4
My_Set4 is subset of My_Set3
Elements in My_Set3 and not in My_Set4: My_Set5 = {1, 2, 6, 7}
My_Set4 and My_Set5 have nothing in common
After applying clear on sets My_Set5: 
My_Set5 = set()