Python/Data Type

[Python] Collection Data Type - set

데이터 세상 2022. 4. 25. 14:09

Collection Data Type

  • 데이터를 서로 연관시키지(relating) 않고 모아두는 컨테이너(container)
  • 멤버십 연산자: in
  • 크기 함수: len(seq)
  • 반복성: 반복문의 데이터를 순회

set

  • 중괄호 {}을 이용하여 선언
  • 반복 가능하고, 가변적이며, 중복 요소가 없고, 정렬되지 않은 컬렉션 데이터 타입
  • 멤버십 테스트 및 중복 항목 제거에 사용됨

set method

add(x)

  • x가 없는 경우 x 추가
people = {"버피", "엔젤", "줄리엣"}
people.add("리키")
peple
>> {"버피", "리키", "줄리엣", "엔젤"}

update(), |= 연산자

  • A.update(B), A |= B, B를 A에 추가한다.
people = {"버피", "엔젤", "자일스"}
people.update({"로미오", "줄리엣", "엔젤"})
people
>> {"로미오", "줄리엣", "버피", "자일스", "엔젤"}

people |= {"리키", "유진"}
people
>> {"로미오", "리키", "줄리엣", "유진", "버피", "자일스", "엔젤"}

union(), | 연산자

  • update() 메서드와 같지만, 연산 결과를 복사본으로 반환한다.

people = {"버피", "엔젤", "자일스"}
people.union({"로미오", "줄리엣"})
{"버피", "엔젤", "로미오", "자일스", "줄리엣"}
people
>> {"버피", "엔젤", "자일스"}

people | {"브라이언"}
>>  {"버피", "엔젤", "자일스", "브라이언}

intersection(), & 연산자

  • 교집합의 복사본을 반환

set_1 = {1, 2, 3, 4}
set_2 = {4, 5, 6, 7}
set_1 & set_2
>> {4}

set_1.intersection(set_2)
>> {4}

difference(), - 연산자

  • 차집합의 복사본을 반환

# 각각의 취미를 대한 집합에서 세가지 모두를 취미로 가지고 있는 친구 찾기
필라테스 = {'영희', '건희'}
영화감상 = {'정희', '정혜', '재용', '영희'}
수영 = {'철수', '미애', '정희', '정혜', '영희'}
print(필라테스 & 영화감상 & 수영)
>> {'영희'}
print(필라테스.intersection(영화감상).intersection(수영))
>> {'영희'}

# 영화감상은 좋아하지만 수영은 좋아하지 않는 친구 찾기
print(영화감상 - 수영)
>> {'재용'}
print(영화감상.difference(수영))

symmertric_difference(), ^연산자

  • 합집합에서 교집합 제외한 복사본을 반환

 

clear()

  • set의 모든 항목을 제거

discard(), remove(), pop()

  • A.discard(x): A의 항목 x를 제거하며 반환값음 없음
  • A.remove(x): discard()와 같지만, x가 없을 경우 KeyError 예외를 발생
  • A.pop(): A에서 한 항목을 무작위로 제거하고 그 항목을 반환, set이 비어 있으면 KeyError 예외 발생

References

반응형