Python 디자인 패턴-세트

집합은 반복 가능하고 변경 가능하며 중복 요소를 포함하지 않는 정렬되지 않은 컬렉션으로 정의 할 수 있습니다. 파이썬에서 집합 클래스는 수학적 집합의 표기법입니다. 집합 사용의 가장 큰 장점은 특정 요소를 확인하는 고도로 최적화 된 방법을 포함한다는 것입니다.

Python에는 고정 세트라는 별도의 범주가 있습니다. 이러한 집합은 필요한 결과를 생성하는 메서드와 연산자 만 지원하는 변경 불가능한 개체입니다.

세트를 구현하는 방법?

다음 프로그램은 세트 구현에 도움이됩니다-

# Set in Python

# Creating two sets
set1 = set()
set2 = set()

# Adding elements to set1
for i in range(1, 6):
   set1.add(i)

# Adding elements to set2
for i in range(3, 8):
   set2.add(i)

print("Set1 = ", set1)
print("Set2 = ", set2)
print("\n")

# Union of set1 and set2
set3 = set1 | set2# set1.union(set2)
print("Union of Set1 & Set2: Set3 = ", set3)

# Intersection of set1 and set2
set4 = set1 & set2# set1.intersection(set2)
print("Intersection of Set1 & Set2: Set4 = ", set4)
print("\n")

# Checking relation between set3 and set4
if set3 > set4: # set3.issuperset(set4)
   print("Set3 is superset of Set4")
elif set3 < set4: # set3.issubset(set4)
   print("Set3 is subset of Set4")
else : # set3 == set4
   print("Set3 is same as Set4")

# displaying relation between set4 and set3
if set4 < set3: # set4.issubset(set3)
   print("Set4 is subset of Set3")
   print("\n")

# difference between set3 and set4
set5 = set3 - set4
print("Elements in Set3 and not in Set4: Set5 = ", set5)
print("\n")

# checkv if set4 and set5 are disjoint sets
if set4.isdisjoint(set5):
   print("Set4 and Set5 have nothing in common\n")

# Removing all the values of set5
set5.clear()

print("After applying clear on sets Set5: ")
print("Set5 = ", set5)

산출

위의 프로그램은 다음과 같은 출력을 생성합니다-

고정 된 세트는 다음 프로그램을 사용하여 시연 할 수 있습니다.

normal_set = set(["a", "b","c"])

# Adding an element to normal set is fine
normal_set.add("d")

print("Normal Set")
print(normal_set)

# A frozen set
frozen_set = frozenset(["e", "f", "g"])

print("Frozen Set")
print(frozen_set)

산출

위의 프로그램은 다음과 같은 출력을 생성합니다-