파이썬(python)의 자료구조

1. 파이썬의 자료 구조

인공지능파이썬 2024. 10. 15. 16:10
더보기

1. 자료구조(Data Structure)

- 대량의 데이터를 효율적으로 관리 할 수 있는 데이터의 구조를 의미

- 코드상에서 효율적으로 데이터를 처리하기 위해 데이터의 특징에 따라 체계적으로 구조화해야함

- 대표적인 자료구조는 배열, 스택, 링크드 리스트, 해쉬테이블, 힙 등...

 

2. 알고리즘(Algorithm)

- 어떤 문제를 풀기 위한 절차 및 방법

- 어떤 문제에 대해 특정한 "입력"을 넣으면 원하는  "출력"을 얻을 수 있도록 만드는 프로그램

> 자료구조와 알고리즘이 중요한 이유는 어떤 자료구조와 알고리즘을 사용하느냐에 따라 프로그램의 성능 차이가 큼

 

3. 파이썬을 이용한 자료 구조와 알고리즘

- 어떤 언어로든 자료구조와 알고리즘은 익힐 수 있음

- 예전에는 C언어 또는 C++로 작성하는 경우가 많았음(추천)

- 최근에는 언어로 인한 제약/평가는 없어짐

- 가장 쉽고 빠르게 자료구조/알고리즘을 익힐수 있는 언어-->파이썬

 

4. 배열

- 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 자료구조

- 파이썬의 리스트 타입은 배열 기능을 제공함 

 

1-1. 배열이 필요한 이유

- 같은 종류의 데이터를 효율적으로 관리하기 위해 사용

- 같은 종류의 데이터를 순차적으로 저장

- 빠른 접근이 가능(인덱스 번호로 접근)

 

1-2. 배열의 단점

- 미리 최대 길이를 설정해야함

- 데이터의 추가.삭제가 어려움

1)
# 1차원 배열: 리스트로 구현
arr = [1, 2, 3, 4, 5]
print(arr)
-->
[1, 2, 3, 4, 5]


2)
# 2차원 배열: 리스트로 구현
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(arr)
-->
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


3)
print(arr[0])
print(arr[0][1])
-->
[1, 2, 3]
2


4)
# arr에서 값을 9 8 7 순서로 출력
print(arr[2][2], arr[2][1], arr[2][0])
-->
9 8 7

 

 

아래 data 배열에서 전체 이름안에 'M' 알파벳이 몇 번 출현하는지 빈도수를 출력

data = ['Braund, Mr. Owen Harris',
'Cumings, Mrs. John Bradley (Florence Briggs Thayer)',
'Heikkinen, Miss. Laina',
'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
'Allen, Mr. William Henry',
'Moran, Mr. James',
'McCarthy, Mr. Timothy J',
'Palsson, Master. Gosta Leonard',
'Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)',
'Nasser, Mrs. Nicholas (Adele Achem)',
'Sandstrom, Miss. Marguerite Rut',
'Bonnell, Miss. Elizabeth',
'Saundercock, Mr. William Henry',
'Andersson, Mr. Anders Johan',
'Vestrom, Miss. Hulda Amanda Adolfina',
'Hewlett, Mrs. (Mary D Kingcome) ',
'Rice, Master. Eugene',
'Williams, Mr. Charles Eugene',
'Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)',
'Masselmani, Mrs. Fatima',
'Fynney, Mr. Joseph J',
'Beesley, Mr. Lawrence',
'McGowan, Miss. Anna "Annie"',
'Sloper, Mr. William Thompson',
'Palsson, Miss. Torborg Danira',
'Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)',
'Emir, Mr. Farred Chehab',
'Fortune, Mr. Charles Alexander',
'Dwyer, Miss. Ellen "Nellie"',
'Todoroff, Mr. Lalio']


m_count = 0
for d in data:
    # print(d)
    for index in range(len(d)): # Braund, Mr. Owen Harris
        if d[index] == 'M':
            m_count += 1

print(m_count)

-->
38

 

728x90
LIST

'파이썬(python)의 자료구조' 카테고리의 다른 글

6. 트리  (0) 2024.10.21
5. 파이썬의 해시 테이블  (2) 2024.10.18
4. 파이썬의 더블 링크드 리스트  (2) 2024.10.15
3. 파이썬의 링크드 리스트  (0) 2024.10.15
2. 파이썬의 큐와 스택  (0) 2024.10.15