• [파이썬 기초]데이터타입 - list, 기타 컨테이너 타입(튜플,딕셔너리)

    2021. 3. 16.

    by. 웰시코더

    반응형

    -파이썬 데이터 타입인 컨테이너 타입 중 하나인 list에 대해 알아보며, 기타 다른 컨테이너 타입도 간단하게 알아본다.

    -공식 문서와 강의 학습을 함께 하였다.

    -생활코딩 파이썬 강의를 바탕으로 학습 및 보충학습 하였다.

    -파이썬은 3.9.2 ver를 사용한다.


     파이썬에는 크게 다음과 같은 타입이 있다.

    • 문자열 타입 
    • 숫자 타입 : 정수(int), 실수(float), 복소수(complex)
    • 컨테이너 타입 : 리스트(list), 튜플(tuple), 딕셔너리(dictionary)

    여기서는 컨테이너 타입에 대해 집중적으로 알아보려고 한다.

     

    리스트(list)

     변수 하나에는 하나의 값이 존재할 수 있다. 한 변수에 2개 이상의 값을 담기 위해서는 컨테이너 타입을 사용해야 한다. 여기서는 컨테이너 타입 중 list타입을 소개한다. list타입은 '[]'안에 값들이 들어가며 값을 변경할 수 있다. 값은 숫자타입이나 문자열타입 모두 들어갈 수 있다. 여러 사용방법이 있지만 공식문서와 강의를 기반으로 학습한 부분만 예제로 올린다. 공식문서는 다음 링크를 참고하였다.

     

    docs.python.org/3/tutorial/introduction.html#lists

     

    3. An Informal Introduction to Python — Python 3.9.2 documentation

    3. An Informal Introduction to Python In the following examples, input and output are distinguished by the presence or absence of prompts (>>> and …): to repeat the example, you must type everything after the prompt, when the prompt appears; lines that d

    docs.python.org

     

    squares = [1,4,9,16,25] # list타입으로 선언
    
    #엘리먼트(값) 가져오기 : 값의 순서인 인덱스를 사용하며 순서는 0부터 시작(0,1,2,3,4)
    print(squares[0]) # 1
    print(squares[-2]) # 16
    
    #슬라이싱(:) 사용하기 : 리스트 안의 특정 값이나 값들을 잘라서 반환해준다
    print(squares[1:3]) # [4,9]
    print(squares[3:]) # [16,25]
    
    #concatenation : 합치기
    print(squares + [77,88,99]) # [1,4,9,16,25,77,88,99]
    
    #값 변경 : immuatable(변경불가)한 String과 다르게 list는 muatable(변경가능)
    squares[0] = 14
    print(squares) # [14,4,9,16,25]
    
    #리스트 맨 뒤에 값 더하기
    squares.append(65)
    print(squares) # [14,4,9,16,25,65]
    
    #엘리먼트(값) 삭제
    del squares[0]
    print(squares) #[4,9,16,25,65]
    

     

     선언은 자바의 배열을 선언하는 것 처럼 저렇게 [1,4,9,16,25]방식으로 선언한다.

    그리고 슬라이싱의 경우 squares[1:3]처럼 [인덱스번호a:인덱스번호b]로 넣어주면 a부터 b의 직전값까지 잘라서 반환한다. 

     

    튜플(tuple)

     튜플은 강의에서 아직 배우지 않았지만 공식문서로 간단하게 학습해보았다. 일단 list와의 큰 차이점은 선언방식mutable 여부인 것 같다. list는 '[]'로 선언하지만, 튜플은 '()'방식으로 선언한다. 기본적인 사용법은 list와 비슷하다.

     또한 튜플은 immutable이다. 즉, 값을 변경할 수가 없다. list는 squares[0] = 50 같은 방식으로 리스트 안의 값을 변경할 수 있지만 튜플은 에러가 발생한다. 간단한 실행 예제는 아래를 참고하기 바란다.

     

    #튜플 선언
    test = (1,2,3)
    print(test) #(1,2,3)
    
    #튜플끼리 합치기
    test2 = (4,5,6)
    print(test+test2) # (1,2,3,4,5,6)
    
    #튜플의 값 가져오기(인덱스 사용)
    print(test2[0]) #4
    
    #튜플은 immuatable이기 때문에 값 수정이 불가(에러발생)
    test2[0] = 10
    print(test2) #에러 발생 : 'tuple' object does not support item assignment
    

     

    딕셔너리(dictionary)

     list처럼 단순히 값만 담아서 인덱스로 값들을 가져오는 것이 아니라, 값의 이름(변수명)으로 가져올 수 있도록 만들 수가 있다. 이를 위해 딕셔너리 타입을 사용할 수 있다. 다음과 같이 사용한다.

    변수명 = {값이름1 : 값1, 값이름2 : 값2...}

    값에 각각의 값이름을 붙일 수 있다. 선언은 '{}'으로 선언한다. 값이름을 변수명(variable), 식별자(identifier)라고 한다.

    #딕셔너리 선언
    dic = {'name':'kim', 'age':20}
    print(dic) #{'name':kim, 'age':20}
    
    #나이 가져오기
    print(dic['age']) #20
    
    #이름 가져오기
    print(dic['name']) #kim
    

     위와 같이 변수명을 통해 변수값을 가져올 수 있다.

     

    출처 : kanonxkanon.tistory.com/2288

    반응형

    댓글