나의 발자취

파이썬 리스트 배열 차이점 (python list vs array) 본문

computer language/Python

파이썬 리스트 배열 차이점 (python list vs array)

달모드 2023. 6. 30. 02:00

사실 한 언어에서는 리스트, 어떤 언어에서는 배열 이렇게 사용하는 경우가 흔한데 파이썬은 둘 다 있어서 헷갈려서 정리해본다.

 

이 두가지 차이가 존재하는 이유는 백엔드 implementation 때문이다. 

우리가 흔히 라이브러리를 쓰지 않고 사용하는 파이썬 자료구조는 리스트라고 알고있을것이다. 파이썬 리스트는 서로 다른 타입의 데이터들을 담을 수 있고 매우 유연하지만 배열에 비해 더 많은 공간을 사용한다. 각각의 리스트 항목들은 각자의 포인터를 가지는데, 파이썬 오브젝트 전체에 대하여 돌아가면서 포인팅을 한다. 반면 파이썬의 배열은 C언어에서의 배열과 똑같이 실행된다. 포인터가 배열의 첫번째 요소를 가리키는동안 나머지는 계속 메모리에 상주하는 식이다.

출처: educative

리스트의 최대 장점은 모둔 데이터와 타입의 정보를 가지는 유연성이라고 할 수 있다. 반면 배열의 경우 기본 선언 자체가 아래와 같이 되어있어 하나의 타입만을 가질 수 있기 때문에 유연성은 떨어지지만 데이터를 저장하고 조작하는데에 유용하다.

import array
new_array = array.array('type', [list])

 

그렇다면,

언제 list를 쓰고, 언제 array를 써야하나?

가 이젠 궁금해질 것이다.

서로 수행되는 방법이 다르기 때문에, 용도에 따라 다르다.

 

시간효율적인 방법으로 데이터를 늘어났다 줄였다 하고싶을 땐 리스트를 쓰면 좋다. 또한 리스트가 다양한 데이터 타입을 수용할 수 있다는 점에서 편리하다.

 

만약 방대한 양의 데이터를 저장하여 수학적 계산이 많이 필요하다면 이때는 배열을 사용하는것이 좋다. 흔히 예시로 NumPy 라이브러리의 array를 들 수 있다.

import numpy as np
numpy_array = np.array([1, 2, 3])
print(numpy_array)

 

Comments