728x90
반응형
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
728x90
반응형
'Python > Data Type' 카테고리의 다른 글
[Python] Sequence Data Type - byte, bytearray (0) | 2022.04.25 |
---|---|
[Python] Sequence Data Type - list (0) | 2022.04.25 |
[Python] Sequence Data Type - tuple (0) | 2022.04.25 |
[Python] Collection Data Type - dictionary (0) | 2021.03.09 |
[Python] Sequence Data Type - string (0) | 2021.03.09 |