컨테이너
1. 시퀀스형 컨테이너
- 순서를 가질 수 있고, 특정 위치의 데이터를 가리킬 수 있다.
- 리스트 튜플 레인지 문자형 등이 있다.
1.1 리스트list
[]
대괄호로 표시, 각원소 사이는,
로 구분 : [1, 2, 3, 4] / 빈리스트 []- 인덱스로 접근 가능함 :
a[1]
1.2 튜플 tuple
()
괄호로 묶어서 표시, 접근은 가능하나 수정은 불가능함- 하나의 항목으로 튜플을 만들 경우 뒤에 쉼표를 붙여야함 (‘hello’ ,)
1.3 레인지 range
- range(satrt, end*, step) : range(5) / range(1, 5) / range(1, 10 , 2)
- 음의 방향으로 하려면 스타트를 엔드보다 크게 하고, 스텝을 음수로 하면 됨
1.4 시퀀스에서 사용 가능한 연산자/ 함수
operation | 설명 |
---|---|
x in s | containment test |
x not in s | containment test |
s1 + s2 | concatenation |
s * n | n번만큼 반복하여 더하기 |
s[i] | indexing |
s[i:j] | slicing |
s[i:j:k] | k간격으로 slicing |
len(s) | 길이 |
min(s) | 최솟값 |
max(s) | 최댓값 |
s.count(x) | x의 개수 |
2. 비시퀀스형 컨테이너
- 순서가 없음. 순서가 있어 보이지만 인덱스로 접근 불가함
- 셋과 딕셔너리가 있음
2.1 셋 set
{}
중괄호로 표현, 순서가 없음, 수학에서의 집합개념과 동일중복값이 없음
operation 설명 s1 | s2 합집합 s1 - s2 차집합 s1 & s2 교집합
2.2 딕셔너리 dictionary
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
키 벨류 페어 형태로 구성됨- 키는 변경 불가능한 데이터만 가능 (immutable : string, integer, float, boolean, tuple, range)
- 벨류는 상관없음
.keys()
.values()
.items
로 원소 확인 가능
2.3 컨테이너 형변환
3. 데이터의 분류
mutable
vs.immutable
3.1 변경 불가능한(immutable
) 데이터
리터럴(literal)
- 숫자(Number)
- 글자(String)
- 참/거짓(Bool)
range()
tuple()
3.2 변경 가능한(mutable
) 데이터
list
- 리스트 복사시 주의* : 레퍼런스형 자료는 다른 방법으로 복사해야 함.
- a = list(b) / a = b[:]
- 이차원 리스트일땐 deepcopy
dict
set
컨테이너 | immutable | mutable |
---|---|---|
sequence | ‘String’ (Tuple) Range() | [List] |
Non-sequence | {Set} {Dictionary : ~} |
'Python' 카테고리의 다른 글
Python_04_예외처리 (0) | 2021.04.06 |
---|---|
Python_03_함수 (0) | 2021.04.05 |
Python_02_제어문 (0) | 2021.04.04 |
Python_00_기초 문법 (0) | 2021.03.26 |
Python 가상환경 설정 및 개발환경 관리 (0) | 2021.03.17 |