찰리의 놀이터

[자료구조-Python] 배열(Array) 본문

알고리즘 공부

[자료구조-Python] 배열(Array)

차알리 2023. 2. 26. 01:02

배열(Array)이란?

같은 종류의 데이터를 순차적으로 저장하는 자료구조입니다.
파이썬에서는 list로 구현되어 있습니다.

  • 인덱스를 통해 직접 접근이 가능합니다.
  • 장점 : 빠른 접근이 가능합니다.
  • 단점 : 데이터 추가 및 삭제에 비용이 많이 사용된다는 점입니다. 데이터 추가 시, 공간이 많이 필요하며, 삭제 시 빈 공간이 생겨 이를 관리해주어야합니다. 길이 조절이 어렵다는 단점도 있습니다.

 


대괄호를 통해 1차원 배열부터 고차원 배열로 구성할 수 있습니다.
파이썬 리스트는 리스트의 주소와 리스트 내부의 데이터의 주소가 분리되어 있습니다.
아래 그림과 같이 주소값을 요청하는 경우 다른 것을 확인할 수 있습니다.

 

 

그리고 같은 리스트를 다른 값에 넣는다고 해도 같은 값을 가지며 데이터 역시 공유합니다.
얕은 복사(shallow copy)라고도 하며 다른 값으로 관리하기 위해선 깊은 복사(deep copy)를 사용해야합니다.
따라서 list1에서 데이터를 추가하거나 삭제 또는 변경한다면 list2 역시 같은 변경사항을 가진 리스트로 저장이 됩니다.

 

 

깊은 복사는 copy 라이브러리의 deepcopy 함수를 사용합니다.