지극히 개인적인 공부 노트/파이썬(Python)

[Python] 자료 구조와 배열의 간단 개념

AS J 2021. 4. 30. 11:49

1. 자료 구조의 개념과 목적

자료 구조: 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계. 즉, 데이터가 모여 있는 구조.

코딩과 알고리즘 등에서 자료 구조를 알아야 하는 이유는 컴퓨터에서 처리해야 하는 많은 데이터를 모아 효율적으로 관리하고 구조화하기 위함이다.

 

2. 배열

Python에서는 이런 자료 구조를 다루기 위해 '배열'을 이용한다.

배열: 단순히 하나의 변수가 아닌, 원소 묶음의 단위. 파이썬에서는 리스트(list)와 튜플(tuple)로 배열이 구현됨.

원소: '배열'에 저장된 객체 하나하나를 일컫는 말.

리스트: 뮤터블(mutable) 자료형으로써, 연산자 [ ] 안에 원소를 쉼표(,)로 구분함.

튜플: 이뮤터블(immutable) 자료형으로써, 연산자 ( ) 안에 원소를 쉼표(,)로 구분함.(리스트와 다르게 결합 연산자 ( )를 생략 가능)

 

3. 원소 접근 방법

원소에 접근하는 방법은 인덱스(index)와 슬라이스(slice)가 있다.

1. 인덱스: 양수 인덱스와 음수 인덱스로 나뉘며, 양수 인덱스는 맨 처음 자리 번호를 0부터 1씩 증가하며 표기, 음수 인덱스는 맨 끝 자리 번호를 -1로 시작해서 왼쪽으로 -1씩 증가하며 표기한다.

표기 예시) a=[1, 2, 3, 4, 5] 일 때,

a[2] = 3

a[-2] = 4

2. 슬라이스: 리스트 또는 튜플 내의 원소 일부를 연속 또는 일정한 간격으로 꺼내 새로운 리스트 또는 튜플로 만든다. 표기 정의는 다음과 같다.

a[i:j:k] : s[i]부터 s[j-1]까지 k씩 건너뛰며 나열한다.(각 i, j, k는 생략 가능하며, 각각 생략의 의미는 i -> 0이 지정된 것으로 간주, j -> len(a)가 지정된 것으로 간주, k -> 1이 지정된 것으로 간주)