ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python의 data type
    AI/기초공부 2021. 9. 15. 17:19
    a = [1, 2, 3, 4, 5]                     # list형 데이터
    b = (1, 2, 3, 4, 5)                     # tuple형 데이터
    c = {'kim':1, 'lee':2, 'park':3}        # dictionary형 데이터
    d = 'Seoul, Tokyo'                      # String형 데이터
    e = [[1, 2], [10, 20], [100, 200]]      # list를 요소로 갖는 list형 데이터
    
    print("type(a): ", type(a))             # list
    print("type(b): ", type(b))             # tuple
    print("type(c): ", type(c))             # dictionary
    print("type(d): ", type(d))             # string
    print("type(e): ", type(e))             # list
    
    print("len(a): ", len(a))               # 5개의 요소로 구성된 list
    print("len(b): ", len(b))               # 5개의 요소로 구성된 tuple
    print("len(c): ", len(c))               # 3개의 요소(item)로 구성된 dictionary
    print("len(d): ", len(d))               # 12개의 요소(문자)로 구성된 string
    print("len(e): ", len(e))               # 3개의 요소(list)로 구성된 list
    
    print(list(c.keys()))                   # dict c의 key 값들을 list로 만들어 반환
    print(list(c.values()))                 # dict c의 value 값들을 list로 만들어 반환
    print(list(c.items()))                  # dict c의 item(key+val)값들을 list로 만들어 반환
    print(list(d))                          # string d의 문자들을 list로 만들어 반환

    # List

     - 배열과 유사한 python의 데이터 타입

     - 대괄호를 사용하여 list생성

     - list의 인덱스는 다른 언어와 마찬가지로 0부터 시작

     - 다른 언어와 달리 마이너스(-) 인덱스가 지원되어 역순으로 리스트 내 값을 참조할 수 있음

      -> 머신러닝 코드에서 슬라이스와 함께 자주 사용되는 데이터 타입

     - list의 각 요소의 데이터타입을 다르게 해서 생성할 수 있고, list내에 다른 list를 포함할 수 있다.

     - 비어있는 list를 생성한 후 append() 메소드를 통해 데이터를 추가 할 수 있다. (머신러닝에서 자주 사용되는 방식)

     - 슬라이싱: List를 대상으로 콜론(:)을 이용하여 특정 범위의 부분 리스트를 얻는 기능 (머신러닝의 필수 기능)

    # List
    a = [10, 20, 30, 40, 50]
    print(a)
    print("a[0]: ", a[0])       # 1번째 요소인 10 출력
    print("a[2]: ", a[2])       # 3번째 요소인 30 출력
    print("a[4]: ", a[4])       # 5번째 요소인 50 출력
    print("a[-1]: ", a[-1])     # 뒤에서 1번째 요소인 50 출력
    print("a[-3]: ", a[-3])     # 뒤에서 3번째 요소인 30 출력
    print("a[-5]: ", a[-5])     # 뒤에서 5번째 요소인 50 출력
    
    b = [1, 5.5, "Hello", [True, 10.0]]
    print(b)
    print("b[3]: ", b[3])       # 4번째 요소인 [True, 10.0] 출력
    print("b[3][0]: ", b[3][0]) # 4번째 요소의 1번째 요소인 True 출력
    print("b[3][1]: ", b[3][-1])# 4번째 요소의 뒤에서 1번째 요소인 10.0 출력
    
    c = []                      # 비어있는 리스트 생성
    c.append(1)                 # 정수 데이터 추가
    c.append(5.5)               # 실수 데이터 추가
    c.append("Hello")           # 문자열 데이터 추가
    c.append([True, 10.0])      # 리스트 데이터 추가
    print(c)
    
    d = [1, 2, 3, 4, 5]
    print("d[0:3]: ", d[0:3])   # 인덱스 0부터 2(3-1)까지 출력
    print("d[:3]: ", d[:3])     # 인덱스 처음부터 2(3-1)까지 출력
    print("d[0:-2]: ", d[0:-2]) # 인덱스 0부터 -3(-2-1)까지 출력
    print("d[-2:]: ", d[-2:])   # 인덱스 -2부터 끝까지 출력
    print("d[:]: ", d[:])       # 인덱스 처음부터 끝까지 출력

     

    # Tuple

     - list와는 달리 소괄호를 사용하여 tuple생성

     - list는 요소값의 변경이 가능하지만, tuple은 요소값의 변경이 불가능함.

    # Tuple
    a = (10, 20, 30, 40, 50)
    print(a)
    print("a[0]: ", a[0])
    print("a[2]: ", a[2])
    print("a[4]: ", a[4])
    a[4] = 55                   # tuple의 요소값은 변경할 수 없음(TypeError 발생)
    print(a)                    # TypeError 발생

     

    # Dictionary

     - 중괄호를 사용하여 dictionary 생성

     - Java의 Map과 유사한 자료구조

     - 키(key)와 값(value)쌍이 저장되며 키와 값은 콜론(:)으로 구분

    # Dictionary
    a = {"kim":10, "lee":20, "park":30}
    print(a)
    print("a['kim']: ", a['kim'])       # key값이 'kim'인 요소의 value값 출력
    print("a['park']: ", a['park'])     # key값이 'park'인 요소의 value값 출력
    a['han'] = 40                       # dictionary에 새 요소 추가(순서보장 안됨)
    print(a)
    a['kim'] = 0                        # dictionary의 key값이 'kim'인 요소의 value값 변경
    print(a)                            # key값은 중복될 수 없다
    
    print("a keys: ", a.keys())         # dictionary a의 key값 출력
    print("a values: ", a.values())     # dictionary a의 value값 출력
    print("a items", a.items())         # dictionary a의 item 출력

     

    # String

     - 작은따옴표('') 또는 큰따옴표("")를 사용하여 String생성

     - list와 마찬가지로 인덱스가 존재하여 인덱스를 통해 각 문자에 접근 가능

     - 문자열(String)내의 각각의 문자 또한 문자열(String) 타입의 데이터임

    # String
    a = "string"
    print(a)
    print("a[0]: ", a[0])           # String 또한 인덱스로 각 문자에 접근가능
    a = a + ", integer"             # (+)연산자를 통해 문자열 변경가능
    a = a + ", double"
    print("a: ", a)
    b = a.split(',')                # split(): String을 특정 seperator를 기준으로 분리하여 list로 반환
    print("b: ", b)
    print("b[0]: ", b[0])           # list의 1번째 요소 출력

     

    # 유용한 함수

     - type(data): data의 데이터 타입을 반환

     - len(data): data의 길이(요소의 개수)를 반환

     - list(data): data를 리스트로 만들어 반환

     - str(data): data를 문자열로 만들어 반환

     - int(data): data가 문자열 형태로 입력되는 숫자(정수, 실수)인 경우 정수형태로 만들어 반환

    a = [1, 2, 3, 4, 5]                     # list형 데이터
    b = (1, 2, 3, 4, 5)                     # tuple형 데이터
    c = {'kim':1, 'lee':2, 'park':3}        # dictionary형 데이터
    d = 'Seoul, Tokyo'                      # String형 데이터
    e = [[1, 2], [10, 20], [100, 200]]      # list를 요소로 갖는 list형 데이터
    
    print("type(a): ", type(a))             # list
    print("type(b): ", type(b))             # tuple
    print("type(c): ", type(c))             # dictionary
    print("type(d): ", type(d))             # string
    print("type(e): ", type(e))             # list
    
    print("len(a): ", len(a))               # 5개의 요소로 구성된 list
    print("len(b): ", len(b))               # 5개의 요소로 구성된 tuple
    print("len(c): ", len(c))               # 3개의 요소(item)로 구성된 dictionary
    print("len(d): ", len(d))               # 12개의 요소(문자)로 구성된 string
    print("len(e): ", len(e))               # 3개의 요소(list)로 구성된 list

    'AI > 기초공부' 카테고리의 다른 글

    AI(Artificial Intelligence)란!  (0) 2021.09.14
Designed by Tistory.