Python 자료구조를 A to Z 복습 해보자 ! 🐈
파이썬의 변수는 실제 데이터가 저장되는 공간 자체가 아니라 데이터가 메모리상에서 위치하는 주솟값이 저장되는 공간이다
위의 이미지는 interest로 시작하는 변수가 str 값들의 위치를 가르키는 (binding) 것을 시각화한 자료이다. 출처
이를 해결하기 위해 Python은 여러 데이터를 한 번에 저장할 수 있는 list 라는 기본 자료구조를 제공한다.
Python의 list는 Data Structure의 Array의 기능을 제공한다 !
파이썬 자료구조에는 위의 사진처럼 Python에서 제공하는 것
과, 이를 활용해 사용자가 구현할 수 있는 기능
이 있다
이 포스팅 시리즈에서는 다른 언어와 같이 기본적인 자료구조를 파이썬을 통해 구현해 이해하는 식으로 작성할 예정이다
그러니까 사진 속 Built-in Data Structures이 아닌 User-Defined Data Structures를 다룰 예정인 것 이다 🌞
이미지출처
배열 이란 하나의 변수에 하나 이상의 values를 가질 수 있는 것이다.
데이터들을 나열하고, 배열 속 각 데이터들에 index로 접근할 수 있다 위에서도 말했지만, 파이썬의 list가 이 기능을 가진다
- 같은 종류의 데이터를 효율적으로 관리하기 위해
- 같은 종류의 데이터를 순차적으로 저장
- 인덱스 번호를 사용한 데이터 접근 가능
배열의 필요성 3가지를 알아보았다
그런 1, 2의 같은 종류의 데이터를 저장/관리한다는 내용은
파이썬 list에는 해당되지 않는다
# 예시 list
list1 = ['velog', 1, 1.0, True]
즉 Python 에서 배열은 다량의 데이터를 순차적, 효율적으로 저장&관리하고, 인덱스를 사용해 직접 접근하기 위해 사용한다
#1차원 배열 list = [1,2,3,4,5] print(list)
#2차원 배열 list2 = [[1,2,3],[4,5,6],[7,8,9]] print(list2)
1차원 배열과 2차원 배열을 생성해 보았다
# 빈 list list3 = [] list4 = list()
빈 list를 생성하기 원한다면 위와 같이 2가지 방법이 있다
# 요소 추가 list3.append(1)
데이터를 추가하는 방법이다
# 요소 삭제 list3.pop(1) list3.remove(1)
데이터를 삭제하는 방법이다
pop은 데이터를 빼오는 개념으로, list에서 데이터를 삭제하면서 동시에 삭제한 데이터를 out 한다
remove는 단순히 list에서 데이터를 삭제하는 기능이다
list2 = [0, 0, 0, 1, 2] list2.pop(0)
list2 = [0, 0, 0, 1, 2] list2.remove(0)
위와 같이 삭제하는 데이터와 같은 값이 배열안에 여러개 있을 경우 결과는 어떨까?
사진과 같이 배열의 가장 앞 데이터만 삭제 한다
그러니까 pop 또는 remove로 0을 배열에서 모두 지우고 싶다면 3번씩 해주면 된다
배열 속 데이터를 모두 삭제하고 싶다면 clear을 하면 된다
list에서 index는 0부터 시작한다
즉 가장 첫번째 요소의 index는 0이다
1차원 배열에서 index 접근은 너무 쉬우니 2차원을 알아보자
2차원 배열의 첫 번째 index 0으로 접근하면
첫 행인 [1, 2 ,3] 을 binding 함을 알 수 있다
즉 2차원에서의 첫번째 요소인 [1, 2, 3] 을 가르킨다
2차원 배열이므로 위의 사진처럼 [0][0] 처럼 2개의 index로 1차원 요소에 접근할 수 있다
[0][0] 은 첫 행 내의 첫 요소인 1을 out 함을 볼 수 있다
이상으로 자료구조의 기본이 되는 array에 대해 알아보는 포스팅이었다
기본적이고 쉬운 내용이지만, 가장 자주 쓰이고 모든 자료구조의 근간이 되므로 정리를 통해 개념을 더욱 다지는 시간이 된듯 하다 ⛄
Array, 이해 완료