log.Sehee
[데이터 취업 스쿨 스터디 노트] 자료구조 5 - 9 본문
튜플(Tuple)
: 불변한 자료형으로 생성된 후 그 값을 변경할 수 없다.
()을 이용해서 선언하며 생략 가능하다. 데이터 구분은 ','을 이용한다.
숫자, 문자열, 논리형 등 모든 기본 데이터를 같이 저장할 수 있으며 또 다른 컨테이너 자료형 데이터를 저장할 수 있다.
리스트와 마찬가지로 인덱스를 가지고 있으며 인덱스를 사용하며 특정 위치의 아이템을 조회할 수 있다.
in, not in
: in, not in 키워드를 사용하여 아이템의 존재 유무를 알 수 있다.
str = ['a', 'b', 'c']
if 'a' in str:
print('yes') # yes
if 'a' not in str:
print('yes') # 미출력
str_2 = 'apple'
if 'p' in str_2:
print('yes') # yes
튜플 결합
: 덧셈 연산자를 사용하여 두 개의 튜플을 결합할 수 있다.
str = ('a', 'b')
str2 = ('c', 'd')
print(str + str2) # ('a', 'b', 'c', 'd')
튜플 슬라이싱
: 리스트와 같은 방법으로 [n:m]을 사용하면 원하는 아이템을 뽑아낼 수 있다.
슬라이싱할 때 단계를 설정할 수 있다.
str = ('a', 'b', 'c', 'd', 'e', 'f', 'g')
print(str[2:-2]) # ('c', 'd', 'e')
print(str[2:-2:2]) # ('c', 'e')
튜플 정렬
: sort() 사용 시 리스트로 변환 후 정렬한다. sorted() 사용 시 바로 정렬할 수 있으며 리스트를 반환한다.
str = (2, 3, 4, 1)
print(sorted(str)) # [1, 2, 3, 4]
str.sort() # 'tuple' object has no attribute 'sort'
str = list(str)
str.sort()
print(str) # [1, 2, 3, 4]
딕셔너리(Dictionary)
: 키(key)와 값(value)을 이용해서 자료를 관리한다.
{}을 이용해서 선언하고, 'key:value' 형태로 아이템을 정의한다.
숫자, 문자열, 논리형, 컨테이너 자료형을 넣을 수 있다. key값에 immutable값은 가능하지만 mutable값은 넣을 수 없다.
딕셔너리 조회
: key값을 이용해서 value를 조회한다.
str = {
1: 'a',
2: 'b',
3: 'c'
}
print(str[1]) # a
딕셔너리 추가 / 수정
: 딕셔너리[key] = value 형태로 아이템을 추가하며 기존에 존재하는 키라면 값이 변경된다.
str = {1: 'a', 2: 'b', 3: 'c'}
str[4] = 'd'
print(str) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
str[4] = 'a'
print(str) # {1: 'a', 2: 'b', 3: 'c', 4: 'a'}
딕셔너리 조회
: keys() 사용 시 딕셔너리의 전체 key 값을 조회할 수 있다.
values() 사용 시 딕셔너리의 전체 value 값을 조회할 수 있다.
str = {1: 'a', 2: 'b', 3: 'c'}
print(str.keys()) # dict_keys([1, 2, 3])
print(str.values()) # dict_values(['a', 'b', 'c'])
딕셔너리 삭제
: 'del 딕셔너리[key]'로 아이템을 삭제할 수 있다.
'딕셔너리.pop(key)'로 아이템을 삭제할 수 있다.
str = {1: 'a', 2: 'b', 3: 'c'}
del str[1]
print(str) # {2: 'b', 3: 'c'}
str.pop(2)
print(str) # {3: 'c'}
in, not in
: key의 존재 유무를 판단한다.
str = {1: 'a', 2: 'b', 3: 'c'}
if 4 in str:
print('yes') # 미출력
if 4 not in str:
print('yes') # yes
내일의 학습 목표
자료구조 문풀 1 - 3