집합, set
변경 가능한 자료형
집합(set)
집합은 순서를 가지지 않는다. 따라서 고유한 위치를 가지는 인덱스에 접근하지 못한다는 특징이 있다.
때문에 요소에 접근하고자 할 경우에는 set 타입을 list 타입으로 형 변환하여 인덱스에 접근할 수 있다.
s1 = {1, 2, 3, 4 ,5}
s1 = list(s1) # list 타입으로 형 변환
print(s1[0]) # 1 출력
집합 표현방법
집합은 중괄호 {} 혹은 set() 함수를 사용하여 생성할 수 있다.
· 중괄호 {}를 사용하여 집합을 생성
s1 = {1, 2, 3, 4 ,5}
print(type(s1)) # <class = 'set'> 반환
· set() 함수를 사용하여 집합을 생성
s1 = set('Hello')
s2 = set([1, 2, 3, 4, 5])
print(s1) # {'l', 'o', 'H', 'e'} 반환
## 순서 없이, 중복된 값 없이 집합이 생성된 모습
print(s2) # {1, 2, 3, 4, 5} 반환
집합 연산
집합은 중복된 값을 제거하거나 집합 연산(교집합, 합집합, 차집합 등)을 수행하는데 있어 유용하게 사용된다.
· 교집합 : 두 집합에 모두 포함된 원소들의 집합을 의미한다. 파이썬에서는 & 기호나 interserction() 메소드를 사용하여 교집합을 구할 수 있다.
s1 = {1, 2, 3, 4, 5}
s2 = {2, 4, 6, 8, 10}
print(s1 & s2) # {2, 4} 출력
· 합집합 : 두 집합의 원소를 모두 합친 집합을 의미한다. 파이썬에서는 | 연산자나 union() 메소드를 사용하여 합집합을 구할 수 있다.
s1 = {1, 2, 3, 4, 5}
s2 = {2, 4, 6, 8, 10}
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 8, 10} 출력
· 차집합 : 첫 번째 집합의 원 중에서 두 번째 집합의 원소에 포함되지 않은 원소들의 집합을 의미한다. 파이썬에서는 - 연산자나 difference() 메소드를 활용하여 차집합을 구할 수 있다.
s1 = {1, 2, 3, 4, 5}
s2 = {2, 4, 6, 8, 10}
print(s1 - s2) # {1, 3, 5} 출력
집합은 중복된 값이 여러 번 들어와도 한 번만 저장되므로, 중복된 값을 효과적으로 제거할 수 있다.
리스트와 딕셔너리를 해당 상황에 사용하려면 추가적인 코드가 필요할 수 있다.
집합에서는 각 원소 자체가 고유한 키의 역할을 수행한다.
{1, 2, 3} 이라는 집합에서 각 1, 2, 3 이 고유한 키 값이 된다는 것이다.
이러한 원소들은 고유한 위치에 저장이 되기 때문에 원소의 존재 유무를 빠르게 확인하는 것이 가능하며, 이 경우에는 리스트보다 집합을 사용하는게 더 효율적이라 하겠다.
집합와 유사하게 딕셔너리의 경우 키와 값을 쌍으로 가지고 있어 키를 통해 값을 빠르게 찾을 수 있는데에 반해, 집합은 값을 가지지 않고 고유한 키인 원소만을 가지기 때문에 단순히 원소의 존재 유무만을 빠르게 파악할 수 있다.
각 자료형의 특성을 잘 이해하고 적절하게 사용하는 것이 매우 중요하겠다.
다음에는 제어문에 대해 알아보도록 하자.
'[파이썬] > 자료형' 카테고리의 다른 글
[파이썬][자료형] 불리언 (0) | 2023.11.05 |
---|---|
[파이썬][자료형] 딕셔너리 (0) | 2023.11.05 |
[파이썬][자료형] 배열 (0) | 2023.11.04 |
[파이썬][자료형] 문자형 (0) | 2023.11.04 |
[파이썬][자료형] 숫자형 (0) | 2023.11.03 |