[Python] list vs array

Zero·2022년 4월 19일
0

python

목록 보기
4/6
post-thumbnail

list와 array는 생긴게 똑같아 공부를 하다 항상 헷갈리곤한다.
따라서 오늘은 이 둘의 차이점에 대해 알아보도록 하겠다.

list

  • 인덱스는 존재하나 몇 번째 데이터인지 구분하는 용도
  • 메모리 주소가 연속적이 아닐 가능성이 있음
  • 다양한 자료형으로 구성 가능
  • 값을 추가하고 제거에 용이
  • 연산은 곱셈, 덧셈 가능

list의 덧셈과 곱셈

덧셈

list1 = [2,4,6,8]
list2 = [1,3,5,7]
list1 + list2

>>[2, 4, 6, 8, 1, 3, 5, 7]

list1과 list2의 각 요소(elements)가 더해지는게 아니라 ,
list1을 기준으로 extend가 되었다.
이를 통해 list의 크기 변경이 가능한 동적배열임을 알 수 있다.

곱셈

list1 * 4

>> [2, 4, 6, 8, 2, 4, 6, 8, 2, 4, 6, 8, 2, 4, 6, 8]

list1의 요소들이 곱해지는 것이 아닌,
list1을 총 4번 나열했음을 알 수 있다.

Array

  • Numpy 패키지 중 하나로 수치 계산이 가능하여 다차원 배열에 사용
  • 문법이 간단하여 효율적임.
  • 인덱스 값이 존재함
  • 연속적으로 메모리 관리에 용이 + cache hit의 가능성이 높음
  • 같은 자료형으로 이루어져있음
  • array 끼리의 연산 가능
  • 전체 연산 가능

cache(캐시)
자주 사용하는 데이터나 값을 빠르게 꺼내 쓸 수 있도록 미리 복사해 놓는 임시 장소
cache hit(캐시 히트)
CPU가 참조하고자 하는 메모리가 캐시에 존재

Array의 연산

덧셈

import numpy as np # array를 사용하기 위해 numpy import

arr1 = np.array([2,4,6,8])
arr2 = np.array([1,3,5,7])
arr1 + arr2

>> array([ 3,  7, 11, 15])

같은 위치에 있는 요소들끼리 더해졌음을 알 수 있다.
이를 통해 array는 크기가 변하지 않는 정적배열임을 알 수 있다.

곱셈

arr1 * arr2

>> array([ 2, 12, 30, 56])

같은 위치에 있는 요소들이 곱해진 것을 알 수 있다.

profile
코딩 일기

0개의 댓글