Python/ETC

[python] 파이썬 셋 함수 (Set Methods)

꼰대 2021. 5. 18. 16:53

1. add(element)

- 첫번째 인자로 받은 값을 set에 추가

- 인자로 받은 값과 동일한 값이 이미 set에 있다면 추가되지 않음 (중복 허용하지 않음)

- 참고 : https://www.w3schools.com/python/ref_set_add.asp

>> f = {'apple', 'banana', 'cherry'}

>> f.add('orange')

>> print(f)

>> f.add('apple')

>> print(f)

{'apple', 'banana', 'cherry', 'orange'}

{'apple', 'banana', 'cherry', 'orange'}


2. clear()

- set에 있는 모든 데이터 삭제

- 참고 : https://www.w3schools.com/python/ref_set_clear.asp

>> f = {'apple', 'banana', 'cherry'}

>> f.clear()

>> print(f)

set()


3. copy()

- set을 복사하여 반환

- 참고 : https://www.w3schools.com/python/ref_set_copy.asp

>> f = {'apple', 'banana', 'cherry'}

>> x = f.copy()

>> print(x)

{'apple', 'banana', 'cherry'}


4. difference(set)

- set 데이터 중 첫번째 인자로 받은 set 데이터에 있는 것을 제외하고 반환

- 차집합 (A-B)와 동일한 개념 A.difference(B)

- 원본 set 데이터는 변동 없음

- 참고 : https://www.w3schools.com/python/ref_set_difference.asp

>> x = {'apple', 'banana', 'cherry'}

>> y = {'peach', 'melon', 'apple'}

>> z = x.difference(y)

>> print(z)

{'cherry', 'banana'}

 

>> z = x-y

>> print(z)

{'cherry', 'banana'}


5. difference_update(set)

- set 데이터 중 첫번째 인자로 받은 set 데이터에 있는 것을 제외

- 원본 set 데이터가 변경됨

- 참고 : 

>> x = {'apple', 'banana', 'cherry'}

>> y = {'peach', 'melon', 'apple'}

>> x.difference_update(y)

>> print(x)

>> print(y)

{'cherry', 'banana'}
{'peach', 'apple', 'melon'}


6. discard(value)

- set 데이터 중 첫번째 인자와 동일한 값을 삭제

- 만약 인자로 받은 값이 없다면 remove()는 Exception이 발생하지만 discard()는 Exception을 발생시키지 않음

- 참고 : https://www.w3schools.com/python/ref_set_discard.asp

>> f = {'apple', 'banana', 'cherry'}

>> f.discard('apple')

>> print(f)

{'banana', 'cherry'}

 

>> f.discard('apple')

>> print(f)

{'banana', 'cherry'}

 

>> f.remove('apple')

>> print(f)

Exception has occurred: KeyError
'apple'


7. intersection(set1, set2, set3, ...)

- set 데이터와 인자로 받은 set 데이터가 공통으로 가지고 있는 값을 반환

- 교집합 (A&B&...)과 동일한 개념

- 참고 : https://www.w3schools.com/python/ref_set_intersection.asp

>> x = {'apple', 'banana', 'cherry'}

>> y = {'peach', 'melon', 'apple'}

>> z = x.intersection(y)

>> print(z)

{'apple'}

 

>> z = x & y

>> print(z)

{'apple'}


8. intersection_update(set1, set2, set3, ...)

- set 데이터를 인자로 받은 set 데이터가 공통으로 가지고 있는 값을 제외한 값 삭제 후 저장

- 원본 set 데이터가 변경됨

- 참고 : https://www.w3schools.com/python/ref_set_intersection_update.asp

>> x = {'apple', 'banana', 'cherry'}

>> y = {'peach', 'melon', 'apple'}

>> x.intersection_update(y)

>> print(x)

{'apple'}


9. isdisjoint(set)

- set 데이터와 인자로 받은 set 데이터 중 하나라도 같은 것이 없다면 True, 하나라도 있으면 False 반환

- 참고 : https://www.w3schools.com/python/ref_set_isdisjoint.asp

>> x = {'apple', 'banana', 'cherry'}

>> y = {'peach', 'melon', 'orange'}

>> z = x.isdisjoint(y)

>> print(z)

True


10. issubset(set)

- set 데이터가 인자로 받은 set 데이터에 모두 포함될 경우 True, 아니면 False 반환

- 참고 : https://www.w3schools.com/python/ref_set_issubset.asp

>> x = {'apple', 'banana', 'cherry'}

>> y = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> z = x.issubset(y)

>> print(z)

True


11. issuperset(set)

- set 데이터가 인자로 받은 set 데이터를 모두 포함할 경우 True, 아니면 False 반환

- 참고 : https://www.w3schools.com/python/ref_set_issuperset.asp

>> x = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> y = {'apple', 'banana', 'cherry'}

>> z = x.issuperset(y)

>> print(z)

True


12. pop()

- set 데이터 중 하나를 랜덤으로 삭제 후 삭제값 반환

- 참고 : https://www.w3schools.com/python/ref_set_pop.asp

>> x = {'apple', 'banana', 'cherry'}

>> z = x.pop()

>> print(x)

>> print(z)

{'banana', 'cherry'}

apple


13. remove(value)

- set 데이터 중 첫번째 인자와 동일한 값을 삭제

- 만약 인자로 받은 값이 없다면 remove()는 Exception이 발생하지만 discard()는 Exception을 발생시키지 않음

- 참고 : https://www.w3schools.com/python/ref_set_remove.asp

>> f = {'apple', 'banana', 'cherry'}

>> f.remove('apple')

>> print(f)

{'banana', 'cherry'}

 

>> f.discard('apple')

>> print(f)

{'banana', 'cherry'}

 

>> f.remove('apple')

>> print(f)

Exception has occurred: KeyError
'apple'


14. symmetric_difference(set)

- set 데이터와 인자로 받은 set 데이터에 공통값을 제외한 나머지 데이터를 set으로 반환

- 대칭차집합(A△B)과 동일한 개념 (A|B) - (A&B)

- 참고 : https://www.w3schools.com/python/ref_set_symmetric_difference.asp

>> x = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> y = {'peach', 'melon', 'apple'}

>> z = x.symmetric_difference(y)

>> print(z)

{'melon', 'peach', 'google', 'cherry', 'Microsoft', 'banana'}


15. symmetric_difference_update(set)

- set 데이터와 인자로 받은 set 데이터에 공통값을 원본 set 데이터에서 제외 후 저장

- 대칭차집합(A△B)과 동일한 개념 (A|B) - (A&B)

- 참고 : https://www.w3schools.com/python/ref_set_symmetric_difference_update.asp

>> x = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> y = {'peach', 'melon', 'apple'}

>> x.symmetric_difference_update(y)

>> print(x)

>> print(y)

{'melon', 'peach', 'google', 'cherry', 'Microsoft', 'banana'}

{'apple', 'melon', 'peach'}


16. union(set1, set2, set3, ...)

- set 데이터와 인자로 받은 set 데이터 중 공통값을 제외하고 모두 합친 값을 반환

- 합집합 (A|B|...)과 동일한 개념

- 참고 : https://www.w3schools.com/python/ref_set_union.asp

>> x = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> y = {'peach', 'melon', 'apple'}

>> z = x.union(y)

>> print(z)

{'cherry', 'Microsoft', 'peach', 'melon', 'banana', 'google', 'apple'}


17. update(set)

- set 데이터와 인자로 받은 set 데이터 중 공통값을 제외하고 모두 합친 값을 원본 set에 저장

- 합집합 (A|B|...)과 동일한 개념

- 참고 : https://www.w3schools.com/python/ref_set_update.asp

>> x = {'apple', 'banana', 'cherry', 'google', 'Microsoft'}

>> y = {'peach', 'melon', 'apple'}

>> x.update(y)

>> print(x)

>> print(y)

{'cherry', 'Microsoft', 'peach', 'melon', 'banana', 'google', 'apple'}

{'apple', 'melon', 'peach'}

반응형