데이터 구조 및 알고리즘 소개

5168 단어
이 기사에서는 목록, 사전, 튜플, 집합, 대기열, 스택 및 연결 목록과 같은 파이썬의 다양한 데이터 구조에 대해 논의할 것입니다. 데이터 구조는 데이터 유형에 따라 데이터를 구성, 관리 및 저장하는 데 사용되는 명명된 위치를 나타냅니다. 데이터 알고리즘은 특정 문제를 해결하기 위한 유일한 목적으로 수행되는 단계 또는 지침을 나타냅니다.

데이터 구조의 유형



데이터 구조는 내장 데이터 구조와 사용자 정의 데이터 구조의 두 가지로 나뉩니다.


  • 내장 데이터 구조
    프로그래머가 데이터를 구성, 저장 및 관리하여 필요할 때 데이터에 쉽게 액세스하고 수정할 수 있도록 하는 데이터 구조를 나타냅니다. 여기에는 다음이 포함됩니다. 목록, 사전, 튜플 및 집합.

  • 기울기



    목록은 특정 유형의 개체를 만드는 데 사용할 수 있는 정렬된 컬렉션 항목을 나타냅니다. 목록은 항상 대괄호 사이에 넣고 쉼표로 구분합니다.
    목록의 예;

    fruits = ['mango', 'banana', 'apple', 'grapes']
    print(fruits)
    


    산출

    ['mango', 'banana', 'apple', 'grapes']
    


    목록 요소는 목록의 첫 번째 요소인 0부터 시작하여 n-1로 끝나는 할당된 인덱스를 사용하여 액세스합니다. 여기서 n은 요소의 총 수입니다.
    예시;

    print(fruits[0])  # prints the element at index 0
    print(fruits[0::])  # prints the whole list
    print(fruits[2])  # prints the element at index 2
    
    


    산출:

    mango
    ['mango', 'banana', 'apple', 'grapes']
    apple
    


    목록에 요소 추가



    전달된 모든 요소를 ​​단일 요소로 추가하는 append(), 확장(), 한 번에 단일 요소 추가 및 insert() 함수, 인덱스 값에 전달된 요소 추가 및 크기 증가를 사용하여 달성할 수 있습니다. 목록.
    예시;

    fruits.append(['watermelon', 'pineapples', 'pawpaw'])
    print(fruits)
    fruits.extend(['peas', 'pawpaw'])
    print(fruits)
    fruits.insert(2,'oranges') # 2 shows the index number where the item should be added in the list
    print(fruits)
    


    산출

    ['mango', 'banana', 'apple', 'grapes', ['watermelon', 'pineapples', 'pawpaw']]
    ['mango', 'banana', 'apple', 'grapes', ['watermelon', 'pineapples'], 'peas', 'pawpaw']
    ['mango', 'banana', 'oranges', 'apple', 'grapes', ['watermelon', 'pineapples'], 'peas', 'pawpaw']
    
    


    사전



    키-값 쌍을 저장하는 데 사용됩니다. Cali 대괄호 {} 또는 함수 대괄호()를 사용하여 생성할 수 있습니다.
    예시;

    my_stuff = {'lunch': 'burger', 'breakfast': 'Toast'}
    print(my_stuff['lunch'])
    my_stuff['dinner']= 'pasta'
    print(my_stuff['dinner'])
    print(my_stuff)
    


    산출

    burger
    pasta
    {'lunch': 'burger', 'breakfast': 'Toast', 'dinner': 'pasta'}
    
    


    키 값 쌍 변경 및 추가




    my_stuff['dinner']= 'pasta'
    print(my_stuff['dinner'])  # adding key-value pair
    my_stuff['lunch'] = 'pilau'  # changing key-value pair
    print(my_stuff)
    
    


    산출

    pasta
    {'lunch': 'pilau', 'breakfast': 'eggs', 'dinner': 'pasta'}
    
    


    튜플



    일단 튜플에 입력된 데이터는 변경될 수 없다는 점을 제외하면 목록과 유사합니다.
    예시;

    my_tuple = (1, 2, 3)
    print(my_tuple)
    my_tuple = my_tuple + ('python', 'java')  # appending elements in a tuple
    print(my_tuple)
    


    산출

    (1, 2, 3)
    (1, 2, 3, 'python', 'java')
    
    


    튜플의 요소에 액세스하는 것은 요소 인덱스를 사용하여 목록에서와 같습니다.

    print(my_tuple[3])
    


    산출

    python
    


    세트



    집합은 데이터가 두 번 이상 입력되더라도 집합에서 한 번만 표시된다는 점에서 고유한 정렬되지 않은 요소의 모음입니다. 예를 들어;

    x = {1,2,2,2,3,3,3,4,5}
    print(x)
    
    


    산출

    {1, 2, 3, 4, 5}
    
    



  • 사용자 정의 데이터 구조
    이들은 파이썬에서 지원하지 않는 데이터 구조이지만 파이썬에서 지원하는 개념을 사용하여 동일한 기능을 반영하도록 프로그래밍할 수 있는 데이터 구조는 사용자 정의 데이터 구조입니다. 여기에는 다음이 포함됩니다. 큐, 스택, 연결 목록, 트리, 해시맵 및 그래프.

  • 대기열



    그들은 한 쪽 끝에서 요소를 삽입하고 다른 쪽 끝에서 요소를 삭제할 수 있는 선형 구조입니다. 그들은 작업에 FIFO(선입 선출) 방법론을 사용합니다. 삭제할 수 있는 끝을 큐의 앞쪽이라고 하고 다른 쪽 끝을 큐의 뒤쪽이라고 합니다.

    나무



    최상위 부분이 루트인 계층적 데이터 구조, 즉 시작점과 끝점을 잎이라고 합니다. 계층 구조의 비선형 데이터를 저장하는 데 사용됩니다.

    그래프



    노드와 에지로 구성된 비선형 데이터 구조를 나타냅니다.

    해시맵



    해시 함수를 사용하여 슬롯 배열에 대한 키가 있는 인덱스를 계산하는 인덱싱된 데이터 구조입니다. 해당 값은 해당 인덱스가 있는 슬롯에 매핑됩니다. 키는 고유하고 변경할 수 없습니다. Python에서 사전은 해시 맵의 예입니다.

    좋은 웹페이지 즐겨찾기