본문 바로가기

AIFEEL

[파이썬] 리스트와 배열의 차이는?

리스트와 배열의 용어를 혼용해서 사용해왔다..

(사실 리스트가 배열의 영어인줄 알았다ㅠㅠ 멍청 그 자체 ;;)

 

그렇지만, 리스트와 배열의 차이는 명확하게 존재한다.

 

가장 먼저 공통점으로 리스트와 배열은 모두 데이터타입 DataType(한국말로는 자료형)의 한 종류이다.

그리고 여러가지 요소들을 묶어주는 것이다.

 

그러면 리스트와 배열에 대해서 각각 정리를 해보겠다.

 


1. 리스트 (list)

파이썬에서 추가적인 패키지(package)나 라이브러리(library)를 임포트할 필요 없이 기본 제공되는(built-in) 자료구조이다.

대괄호([ ])로 여러가지 요소들을 담을 수 있다.

그리고 각 요소에 대해 인덱스(index) 값으로 접근할 수 있다.

 

예시 코드:

 

fruit_list = ['apple', 'banana', 'pineapple']
num_list = [1,2,3,4,5]

 

다들 알다시피, 리스트를 만들 때는 리스트를 선언하고 대괄호 안에 요소들을 넣어주면 된다.

리스트의 경우, 다양한 메서드(함수)를 활용할 수 있다.

 

append() 는 리스트에 요소를 추가하는, 대표적인 list 자료형에서 쓸 수 있는 메서드이다.

 

fruit_list.append('kiwi')
#이렇게 되면 리스트의 마지막에 'kiwi' 가 추가되어 리스트의 길이는 4가 된다

그리고 리스트의 특정 요소에 접근할 때는 다음과 같이 인덱스 값을 호출하면 된다.

 

print(fruit_list[0])
# 'apple'

 

 

2. 배열 (array)

한편 배열(array)의 경우에는, 추가적으로 array를 임포트 해줘야 활용할 수 있다.

그래서 파이썬에서 배열을 활용하기 위해, 넘파이(numpy) 라이브러리를 임포트하기도 한다.

 

왜 array를 임포트하기보다 numpy를 임포트하는 경우가 많을까?

=> 사실 이 부분에 대해서는 추후 공부하면서 찾아보고자 한다.

 


✒ array, list 사용 비교하기

 

import array as arr

mylist = [1, 2, 3]   # 이것은 파이썬 built-in list입니다. 
print(type(mylist))

mylist.append('4')  # mylist의 끝에 character '4'를 추가합니다. 
print(mylist)

mylist.insert(1, 5)  # mylist의 두번째 자리에 5를 끼워넣습니다.
print(mylist)

print("------------------------------------------")

myarray = arr.array('i', [1, 2, 3])   # 이것은 array입니다. import array를 해야 쓸 수 있습니다.
print(type(myarray))

# 아래 라인의 주석을 풀고 실행하면 에러가 납니다.
#myarray.append('4')    # myarray의 끝에 character '4'를 추가합니다. 
print(myarray)

myarray.insert(1, 5)    # myarray의 두번째 자리에 5를 끼워넣습니다.
print(myarray)

 

위의 코드를 실행하면 아래와 같은 결과가 나타난다.

 

 

리스트는 array 와는 다르게 연속된 위치가 아닌 떨어진 영역에 저장된다는 점이 가장 큰 차이이다.

👇

참고 : 

https://blog.martinwork.co.kr/theory/2018/09/22/what-is-difference-between-list-and-array.html

 

 

 

 

--