세트(set)
중복되지 않는 항목들의 순서가 없는 컬렉션
1. 세트 생성
s1 = {1, 3, 5, 7}
print(s1)
print(type(s1))
s2 = {}
print(s2)
print(type(s2)) # 데이터가 들어가야 세트로 인식함
s3 = set({1, 3, 5, 7})
print(s3)
print(type(s3))
2. 컬렉션 변환
li1 = [1, 2, 3, 4]
print(type(li1))
s4 = set(li1)
print(s4)
print(type(s4))
s5 = {1, 3, 5, 3, 7, 9, 1, 5, 10, 7}
print(s5) # 중복된 요소 사라짐
li2 = [1, 3, 5, 7, 9, 1, 5, 10, 7]
print(li2)
s6 = set(li2)
print(s6) # 세트로 바꿀 시 중복된 요소 사라짐
3. 세트의 메서드
s1 = {1, 3, 5, 7}
print(s1)
# add(): 세트에 요소를 추가
s1. add(2)
print(s1)
s1.add(4)
print(s1)
s1.add(7)
print(s1) # 중복된 건 추가되지 않음
s1 = {1, 3, 5, 7}
print(s1)
# update(): 세트에 여러 요소를 추가
s1.update([2, 4, 6, 8, 10])
print(s1)
자동으로 정렬된 것이 아니라 순서가 없기 때문에 무작위로 요소가 추가된 것
s1 = {1, 3, 5, 7}
print(s1)
#remove(): 세트의 요소를 제거. 단 요소가 없으면 에러가 발생
s1.remove(3)
print(s1)
#s1.remove(3) # KeyError: 3
에러가 발생해도 에러 처리 문법으로 해결이 가능하기 때문에 제거하는 메서드 사용을 주저할 필요는 없다.
s1 = {1, 3, 5, 7}
print(s1)
#discard(): 세트의 요소를 제거. 단 요소가 없어도 에러가 발생하지 않음
s1.discard(3)
print(s1)
s1.discard(3)
print(s1)
s1 = {1, 3, 5, 7}
print(s1)
s2 = s1 # 메모리 주소를 복사
print(id(s1))
print(id(s2))
# copy(): 세트를 복사
s2 = s1.copy() # 값을 복사
print(s1)
print(s2)
print(id(s1))
print(id(s2))
copy() 사용 시 세트 자체를 복사한 것이기 때문에 s1, s2 둘 중 하나를 변화 시켰을 때 다른 값은 변화하지 않는다.
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
# union(): 합집합을 계산하여 반환
result1 = s3.union(s4)
print(result1)
result2 = s3 | s4 # | : shift + \
print(result2)
union() 메서드 또는 연산자 | 사용
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
#intersection(): 교집합을 계산하여 반환
result1 = s3.intersection(s4)
print(result1)
result2 = s3 & s4
print(result2)
intersection() 메서드 또는 연산자 & 사용
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
# difference(): 차집합을 계산하여 반환
result1 = s3.difference(s4)
print(result1)
result2 = s3 - s4
print(result2)
difference() 메서드 또는 연산자 - 사용
s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}
# symmetric_difference(): 대칭 차집합을 계산하여 반환
result1 = s3.symmetric_difference(s4)
print(result1)
result2 = s3 ^ s4
print(result2)
symmetric_difference() 메서드 또는 연산자 ^ 사용
'파이썬 > 파이썬 기초 문법' 카테고리의 다른 글
파이썬의 연산자 (0) | 2024.09.26 |
---|---|
파이썬 컬렉션 타입 (4) 딕셔너리 (0) | 2024.09.26 |
파이썬 컬렉션 타입 (2) 튜플 (0) | 2024.09.26 |
파이썬 컬렉션 타입 (1) 리스트 (1) | 2024.09.26 |
파이썬 문자열 다루기 (1) | 2024.09.25 |