• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[05] Concept(자료형 1_집합 set, 시퀀스 Sequence)

09 Mar 2020

Reading time ~2 minutes

Table of Contents
  • 목차
  • 자료형
  • 파이썬 자료형
    • 숫자
      • bool
    • 매핑 Mapping
    • 집합 set
    • 시퀀스 Sequence
      • str(string)
      • list
      • 불변과 가변

목차

  • 파이썬 자료형
    • 숫자
      • bool
    • 매핑 Mapping
    • 집합
      • set
    • 시퀀스 Sequence
      • str
      • list
      • 불변과 가변

자료형

: 코딩 테스트에서도 가장 많이 사용할 2가지 자료형인 리스트 List 와 딕셔너리 Dictionary 에 대해 중점적으로 살펴볼 예정.


파이썬 자료형

image

숫자

파이썬에서는 숫자 정수형으로 int 만을 제공.
[Q]
그렇다면 int 보다 더 큰 값은 어떤 자료형에 보관해야 할까?
(파이썬에는 long 이 없을까?)
[A]
버전 2.4부터는 int가 충분하지 않으면 자동으로 long 타입으로 변경되는 구조가 됐다!
덕분에 C와 달리 오버플로 Overflow 가 발생하는 일은 사라졌다.
-> int 는 임의 정밀도를 지원하며, 더 이상 파이썬에서 고정 정밀도 정수형은 지원하지 않게 됐다.

bool

기초 개념
엄밀히 따지면 논리 자료형인데
파이썬에서는 내부적으로 1( True )과 0( False )으로 처리되는 int 의 서브 클래스임.

  • int는 object 의 하위 클래스이기도 하기 때문에 결국 다음과 같은 구조를 띤다.

    object > int > bool

(증명) 논리 자료형의 값인 True 와 정수형의 값인 1 을 비교

>>> True == 1
True
>>> False == 0
True

비교 연산자 == 를 통해 확인한 결과 논리 자료형은 내부적으로 정수값을 갖고 있는 것을 확인 가능.


매핑 Mapping

키와 자료형으로 구성된 복합 자료형
딕셔너리: 파이썬에 내장된 유일한 매핑 자료형 기초 개념


집합 set

기초개념

  • 파이썬의 집합 자료형
  • 중복된 값을 갖지 않는 자료형.
  • 파이썬에서 빈 집합은 다음과 같은 형태로 선언한다.
  • 입력 순서 유지X
  • 중복된 값이 있을 경우 하나의 값만 유지
  • 키 Key /값 Value 형태인 딕셔너리랑 헷갈리지 않게 주의
>>> a = set() 
>>> a
set()
>>> type(a)
<class 'set'>


>>> a = {'a','b','c'} >>> type(a)
<class 'set'>
>>> a = {'a':'A', 'b':'B', 'c':'C'} >>> type(a)
<class 'dict'>

>>> a = {3, 2, 3, 5} 
>>> a
{2, 3, 5}

시퀀스 Sequence

우리말로 하면 ‘수열’ 같은 의미
어떤 특정 대상의 순서 있는 나열.

str(string)

기초 개념

  • 문자의 순서 있는 나열
  • 문자열을 이루는 자료형

list

기초 개념

  • 다양한 값들을 배열 형태의 순서 있는 나열로 구성하는 자료형
  • 파이썬에서 사실상 배열의 역할을 수행.

불변과 가변

시퀀스는 불변 Immutable 과 가변 Mutable 으로 구분

[[ 불변 Immutable ]]
불변은 값을 변경 불가
str , tuple , bytes

[str이 변경 불가라는 증거 1]

이건 다시 참조한거지 변경이 아님

>>> a = 'abc' 
>>> a = 'def' 
>>> type(a)
<class 'str'>

(코드 설명)
a 변수는 처음에는 abc 를 참조했다가(같은 주소) 이후 에는 def 를 참조하도록(같은 주소) 변경되었을 뿐
abc 와 def 는 생성된 후에 변하지 않고 메모리 어딘가에 남아 있다

>>> a = 'abc' 
>>> id('abc')
4317530408
>>> id(a)
4317530408

>>> a = 'def' 
>>> id('def')
4318831648
>>> id(a)
4318831648

[str이 변경 불가라는 증거 2]

str 이 정말로 변경되려면 참조하고 있는 str 에 대해 다음과 같은 할당자가 처리되어야 함

  • 여기서는 오류가 발생
# 문자열 그 자체를 바꾸려고 시도
>>> a[1] = 'd'
Traceback (most recent call last):
File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment

[[가변 Mutable]]
list 는 가변
기초 개념
리스트는 자유롭게 값을 추가, 삭제할 수 있는 동적 배열.

지금까지 파이썬에서 제공하는 주요 자료형을 살펴봤다. 중요한 내용들은 다시 설명한다고 언급했으니 이제 하나씩 살펴보자. 에 대해 살펴본다.



Coding test Share Tweet +1