Python

Python_01_컨테이너

5_ssssseung 2021. 3. 30. 22:04

컨테이너


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 scontainment test
x not in scontainment test
s1 + s2concatenation
s * nn번만큼 반복하여 더하기
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 컨테이너 형변환

https://user-images.githubusercontent.com/18046097/61180466-a6a67780-a651-11e9-8c0a-adb9e1ee04de.png


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

컨테이너immutablemutable
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