728x90
https://www.youtube.com/watch?v=Mkk8WOCAlqQ&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=6
사전 자료형
- 사전 자료형은 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형
- 앞서 다루었던 리스트나 튜플이 값을 순차적으로 저장하는 것과는 대비됨
- 사전 자료형은 키와 값의 쌍을 데이터로 가지며 원하는 '변경 불가능한(Immutable) 자료형'을 키로 사용할 수 있음
- 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리 할 수 있음
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data)
if '사과' in data:
print("'사과'를 키로 가지는 데이터가 존재합니다")
키(Key) | 값(Value) |
---|---|
사과 | Apple |
바나나 | Banana |
코코넛 | Coconut |
실행 결과
{'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
'사과'를 키로 가지는 데이터가 존재합니다
사전 자료형 관련 메서드
- 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원함
- 키 데이터만 뽑아서 리스트로 이용할 때는 keys() 함수를 이용
- 값 데이터만을 뽑아서 리스트로 이용할 때는 values() 함수를 이용
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
# 키 데이터만 담은 리스트
key_list = data.keys()
# 값 데이터만 담은 리스트
value_list = data.values()
print(key_list)
print(value_list)
# 각 키에 따른 값을 하나씩 출력
for key in key_list:
print(data[key])
실행 결과
dict_keys(['사과', '바나나', '코코넛'])
dict_values(['Apple', 'Banana', 'Coconut'])
Apple
Banana
Coconut
집합 자료형
- 집합은 다음과 같은 특징이 있음
- 중복을 허용하지 않음
- 순서가 없음
- 집합은 리스트 혹은 문자열을 이용해서 초기화할 수 있음
- 이때
set()
함수를 이용
- 이때
- 혹은 중괄호 (
{}
)안에 각 원소를 콤마(,
)를 기준으로 구분하여 삽입함으로써 초기화 할 수 있음 - 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음
# 집합 자료형 초기화 방법 1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data)
# 집합 자료형 초기화 방법 2
data = {1, 1, 2, 3, 4, 4, 5}
print(data)
실행 결과
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
집합 자료형의 연산
- 기본적인 집합 연산으로는 합집합, 교집합, 차집합 연산 등이 있음
- 합집합: 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합 (A ∪ B)
- 교집합: 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합 (A ∩ B)
- 차집합: 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합 (A − B)
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
# 합집합
print(a | b)
# 교집합
print(a & b)
# 차집합
print(a - b)
실행 결과
{1, 2, 3, 4, 5, 6, 7}
{3, 4, 5}
{1, 2}
집합 자료형 관련 함수
data = set([1, 2, 3])
print(data)
# 새로운 원소 추가
data.add(4)
print(data)
# 새로운 원소 여러 개 추가
data.update([5, 6])
print(data)
# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data)
실행 결과
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6}
{1, 2, 4, 5, 6}
사전 자료형과 집합 자료형의 특징
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있음
- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없음
- 사전의 키(Key) 혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회함
728x90
'CodingTest' 카테고리의 다른 글
[이것이 코딩 테스트다 with Python] 8강 파이썬 문법: 조건문 (0) | 2021.01.04 |
---|---|
[이것이 코딩 테스트다 with Python] 7강 파이썬 문법: 기본 입출력 (0) | 2021.01.04 |
[이것이 코딩 테스트다 with Python] 5강 파이썬 문법: 문자열, 튜플 자료형 (0) | 2021.01.04 |
[이것이 코딩 테스트다 with Python] 4강 파이썬 문법: 리스트 자료형 (0) | 2021.01.04 |
[이것이 코딩 테스트다 with Python] 3강 파이썬 문법 수 자료형 (0) | 2021.01.04 |
댓글