[이것이 코딩 테스트다] 파이썬 - 사전(딕셔너리), 집합 자료형
사전(딕셔너리)
사전(딕셔너리) 자료형
: 키(key) 와 값(value)의 쌍을 데이터로 가지는 자료형
cf.) 리스트와 튜플처럼 순차적으로 값을 저장하는 자료형들과는 다르다
: 변경 불가능한 자료형을 키로 사용 (해당 키 값으로 원소에 접근 가능)
: 해쉬 테이블을 사용하므로, 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있다
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data)
#딕셔너리 객체에 특정 키가 존재하는 지 확인
if '사과' in data:
print("'사과'를 키로 가지는 데이터가 존재합니다.")
#결과
#{'사과':'Apple', '바나나':'Banana', '코코넛':'Coconut'}
#'사과'를 키로 가지는 데이터가 존재합니다.
- 사전 자료형을 초기화 할 때는, dict() 함수로 초기화 할 수 있다
- 특정한 키에 어떠한 값을 할당할 때는, []를 이용해서 키 값을 넣어주고 원하는 값을 매핑하면 된다
- 사전 자료형을 출력하게 되면 {}로 감싸진 하나의 사전(딕셔너리) 객체가 출력되는 것을 볼 수 있다
사전 자료형 관련 메서드
- keys() 함수 : 키 데이터만 뽑아서 리스트로 이용
- values() 함수 : 값 데이터만 뽑아서 리스트로 이용
key_list = data.keys()
value_list = data.values()
print(key_list)
print(value_list)
#결과 (사전키, 사전값 객체로 반환됨)
#dict_keys(['사과', '바나나', '코코넛'])
#dict_values(['Apple', 'Banana', 'Coconut'])
#앞에 dict_keys, dict_values를 없애주기 위해서 list형 데이터로 형 변환 수행
key_list = list(data.keys())
value_list = list(data.values())
#결과
#['사과', '바나나', '코코넛']
#['Apple', 'Banana', 'Coconut']
집합
집합 자료형
: 중복을 허용하지 X
: 순서가 X
→ 집합 자료형을 데이터 존재 유무 판별에 효과적으로 사용 가능
: 집합은 리스트 / 문자열 을 사용하여 초기화
: set() 함수를 이용
: 중괄호({}) 안에 원소를 , 기준으로 구분하여 삽입하여 초기화
→ 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리 (사전 자료형과 동일)
#집합 자로형 초기화 - set() 함수 사용
data = set([1, 1, 2, 3, 3, 4, 5])
print(data)
#결과
#{1, 2, 3, 4, 5}
#집합 자료형 초기화 - {} 사용
data = {1, 1, 2, 3, 3, 4, 5}
print(data)
#결과
#{1, 2, 3, 4, 5}
- 집합 자료형의 성질에 따라 중복이 배제된 채로 결과가 출력된다
집합 자료형의 연산
: 합집합( | ), 교집합( & ), 차집합( - ) 연산 존재
집합 자료형 관련 함수
- add(추가할 값) : 새로운 원소 추가
- update([값1, 값2 ... ]) : 새로운 원소 여러 개 추가
- remove(제거할 값) : 특정 값을 갖는 원소 삭제
data = set([1, 2, 3])
print(data)
#결과
#{1, 2, 3}
data.add(4)
print(data)
#결과
#{1, 2, 3, 4}
data.update([5, 6])
print(data)
#결과
#{1, 2, 3, 4, 5, 6}
data.remove(3)
print(data)
#결과
#{1, 2, 4, 5, 6}
[정리] 사전 자료형과 집합 자료형의 특징
- 리스트 or 튜플 : 순서가 있기 때문에 인덱싱으로 자료형의 값을 얻을 수 있음
- 사전 자료형 or 집합 자료형 : 순서가 없기 때문에 인덱싱으로 자료형의 값을 얻을 수 없음
cf.) 사전의 key or 집합의 원소 를 이용해 O(1) 의 시간 복잡도로 조회
'코딩테스트 > 이것이 코딩 테스트다' 카테고리의 다른 글
[이것이 코딩 테스트다] 파이썬 - 조건문 (0) | 2022.07.22 |
---|---|
[이것이 코딩 테스트다] 파이썬 - 기본 입출력 (0) | 2022.06.29 |
[이것이 코딩 테스트다] 파이썬 - 문자열, 튜플 자료형 (0) | 2022.06.29 |
[이것이 코딩 테스트다] 파이썬 - 리스트 자료형 (0) | 2022.06.29 |
[이것이 코딩 테스트다] 파이썬 - 수 자료형 (0) | 2022.06.29 |
댓글