[자료구조] 배열(Array)

반응형
    반응형

    요즘 구조에 대해 공부하고 있는데 파이썬을 가지고 자료구조에 대해 정리를 하고 있습니다.

    그 중에 가장 쉬운 배열부터 정리하려 합니다.

     

    배열(Array)은 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조로 

    파이썬에서는 리스트 타입이 배열로 이루어져 있습니다.

     

    주로 데이터를 효율적으로 관리하기 위해서 사용되는데요.

    저장을 할때 순차적으로 저장을 해서 인덱스가 존재합니다. 

    인덱스는 첫위치를 0으로 시작해서 순차적으로 번호를 매기게 됩니다.

    그래서 모든 데이터에 번호가 매겨져 인덱스로 단번에 데이터에 접근을 할 수 있는 장점을 가지고 있습니다.

     

    데이터 d a t a
    인덱스(index) 0 1 2 3

     

    표에서처럼 'data'라는 데이터를 넣으면 배당된 자리에 순차적으로 한개씩 데이터가 들어가게 됩니다.

    't' 를 찾으려면 인덱스 번호 2로 접근을 하게 됩니다.

     

    구현을 해보겠습니다.

    #1차원 배열 
    data_list = [1,2,3,4,5]
    
    print(data_list[0])
    >>> 1
    
    #2차원 배열
    data_list_dim2 = [[1,2,3],[4,5,6],[7,8,9]]  
    
    print(data_list_dim2[0])
    >>> [1,2,3]
    
    print(data_list_dim2[0][1])
    >>> 2

    리스트를 만들면 자연스럽게 리스트의 원소에 순차적으로 인덱스가 붙여집니다.

    위의 예처럼 인덱스로 데이터를 불러올 수 있습니다. 

     

    2차원 배열을 보면 리스트의 리스트를 추가된 것을 볼 수 있습니다.

    그러면 인덱스가 각 리스트에 부여되고 그 리스트의 데이터에 다시 인덱스가 부여되게 됩니다. 

    인덱스를 한개만 넣으면 리스트가 불러지고 인덱스를 두번 넣으면 데이터를 불러오게 됩니다. 

     

    간단 연습

    배열 개념이 너무 쉬우니 간단한 연습하나 하고 마치겠습니다.

    다음 리스트에서 e가 몇 번 나왔는지 출력해보겠습니다.

    book_list = ['The Old Man and the Sea', 'Crime and Punishment','The Scarlet Letter']
    
    count = 0
    for data in book_list:
        for index in range(len(data)):
            if data[index] == 'e':
                count +=1
    print(count)
    >>> 9

     

     

    이상으로 포스팅을 마치겠습니다.

    'Python > 알고리즘' 카테고리의 다른 글

    [Python] 속도 개선 방법  (6) 2021.09.04
    더블 링크드 리스트(Double linked list)  (0) 2021.01.27
    [자료구조]링크드 리스트(Linked list)  (0) 2021.01.23
    [자료구조] 스택(Stack)  (0) 2021.01.16
    [자료구조] 큐(Queue)  (0) 2021.01.13

    댓글

    Designed by JB FACTORY

    ....