728x90
집합 자료형 Set
리스트형 자료구조에서 중복된 값을 제거하거나, 리스트끼리의 값을 비교하려면 복잡한 로직을 짜야합니다. Set 클래스는 이것을 쉽게 처리할 수 있도록 해주는 자료구조 입니다.
Set 객체에 값을 넣으면 중복되는 값은 하나만 남고, 순서가 없기 때문에 인덱스라는 개념이 없습니다.
s1 = set("Hello World") # Set 생성
print(s1)
Set 자료형을 리스트나 튜플 형태로 바꿔주면 인덱스를 사용할 수 있습니다.
하지만 랜덤한 순서로 지정되기 때문에 정렬을 해주지 않으면 어차피 인덱스를 직접적으로 사용하기 어렵습니다.
정렬이나 index() 함수 등을 통해 찾아서 사용해야합니다.
s1 = set("Hello World") # Set 생성
lst = list(s1) # 리스트로 변경
tuple = tuple(s1) # 튜플로 변경
print(lst.index("o")) # "o"가 있는 인덱스 찾기
print(lst)
lst.remove("o") # "o" 찾아서 지우기
print(lst)
파이썬 Set 관련 함수
먼저 Set 자료형에 중복되는 값들을 죄다 집어넣어서 중복을 제거하는데 사용할 수 있습니다.
s1 = set("Hello World") # Set 생성
print(s1)
s1.add(10000) # 하나의 값 추가하기
s1.update(["가", "가", "가", "라"]) # 한 번에 여러 값 추가하기
print(s1)
s1.remove("라") # 해당 값 제거하기
print(s1)
Set 자료형은 리스트와 같은 집합 자료들 간의 값을 비교하는데 유용합니다.
먼저 서로 중복되는 값인 교집합 구하기 입니다.
s1 = set(["가", "나", "다", "라", "마"])
s2 = set(["나", "라", "마", "바", "사"])
# s1과 s2의 교집합 구하기
print(s1 & s2)
print(s1.intersection(s2))
두 집합이 합쳐진 합집합입니다. 리스트와 달리 중복된 값은 하나의 값만 남습니다.
s1 = set(["가", "나", "다", "라", "마"])
s2 = set(["나", "라", "마", "바", "사"])
# s1과 s2의 합집합 구하기
print(s1 | s2)
print(s1.union(s2))
상대방이 가지고 있는 자료를 내쪽에서 지워버리는 차집합 만들기 입니다.
s1 = set(["가", "나", "다", "라", "마"])
s2 = set(["나", "라", "마", "바", "사"])
# s1 중에서 s2에 있는 값 빼기 (차집합)
print(s1 - s2)
print(s1.difference(s2))
728x90
'파이썬 > 기본문법' 카테고리의 다른 글
파이썬 함수 (메소드) 사용하기 (1) | 2024.02.16 |
---|---|
파이썬 제어문, 반복문 (if, for, while) (1) | 2024.02.15 |
파이썬 튜플 자료형 (0) | 2024.02.15 |
파이썬 리스트 자료형 (0) | 2024.02.15 |
파이썬 문자열 함수 및 기본 문법 (0) | 2024.02.14 |
댓글