반응형
Set은 집합과 관련된 처리를 쉽게 하기 위해 제공되는 자료형이다.
수학에서 등장하는 집합과 성질이 매우 유사하며, Set은 중복된 값을 허용하지 않고 원소 내에 순서가 없다.
형태 : s = { 1, 2, 5 }
형태가 딕셔너리와 같은 { }을 사용하지만 키값의 유무로 헷갈리지 않을 수 있다.
<Set 기본 사용법>
## There are a lot of ways to declare set
a = set()
a = set({1,2,3})
a = set([1,2,3])
a = {1,2,3}
## Set can have various types but mutable values are not possible.
a= { 1,2,'car',(1,2)} ## possible
a= { 1,2,'car',[1,2]} ## impossible
## Set doesn't allow duplication.
>>s= {1,2,2,3}
>>s
{1,2,3}
## Set is no order.
>>s = {44,12,-2,43,4,5}
>>for i in S:
>> print(i)
{4, 5, 43, 12, 44, -2}
## 'in' can be used as list or dictionary.
>> 2 in r
True
>> 3 in r
False
<원소 추가 방법>
## add one element
>>s={1,2}
>>s.add(3)
>>s
{1,2,3}
## add some elements
>>s={1,2}
>>s.update([3,4,5])
>>s
{1,2,3,4,5}
## eliminate a element
## 'remove' makes error when the element does not exist, but 'discard' doesn't.
>>s={3,4,5}
>>s.remove(2) ---> error
>>s.discard(2) ---> possible
< Set 연산자 >
## union = 합집합
c = a|b
or
a|=b
## intersection = 교집합
c = a&b
or
a&=b
## difference = 차집합
c = a-b
or
a-=b
## symmetric difference = 대칭차집합
c = a^b
or
a^=b
< 그 밖의 메소드 >
## check if it is subset or not
>>a={1,2,3}
>>b={1,2}
a.issubset(b)
False
b.issubset(a)
True
## check if it is superset or not
a.issuperset(b)
True
b.issuperset(a)
False
댓글