Python 배열 대 목록: 차이점 및 사용 사례

게시 됨: 2021-11-03

Python은 지난 몇 년 동안 데이터 과학에서 다른 언어보다 우위를 점했으며 데이터 구조가 중요한 역할을 합니다. Python에는 많은 데이터 구조 세트가 있으며 그 중 배열과 목록이 오늘 논의할 가장 인기 있는 것입니다.

배열과 목록은 여러 측면에서 유사한 Python의 두 가지 두드러진 데이터 구조입니다. 둘 다 데이터를 저장하는 데 사용할 수 있고 데이터를 반복하고, 슬라이스하고, 인덱싱 방법을 사용하여 요소에 액세스할 수도 있습니다. 그렇다면 파이썬에서 목록과 배열의 차이점은 무엇입니까? 이것이 우리가 이 기사에서 논의할 내용입니다.

목차

파이썬의 배열

배열은 동종 요소, ​​즉 동일한 데이터 유형에 속하는 요소를 보유하는 연속 데이터 구조입니다.

다음은 Python에서 배열이 나타내는 주요 특성입니다.

  • 배열 연속적 특성으로 인해 데이터를 인접한 메모리 위치에 저장할 수 있습니다. 이렇게 하면 배열 요소에 대한 작업을 더 쉽게 수행할 수 있습니다.
  • Python에서 배열은 두 가지 방법 으로 선언 할 수 있습니다.
    • 어레이 모듈 사용

import array # 'array' 모듈 가져오기

myArray = array.array('i', [10, 20, 30]) # 배열 선언

# 생성된 배열: [10, 20, 30]

참고: 위의 선언에서 형식 코드를 지정해야 합니다. 여기서 'i'는 정수를 나타내는 형식 코드입니다.

  • NumPy 모듈 사용

import numpy # 'numpy' 모듈 가져오기

myArray = numpy.array([10, 20, 30]) # 배열 선언

# 생성된 배열: [10, 20, 30]

  • 배열 요소는 순서 가 지정 됩니다. 모든 요소에는 연결된 정수 인덱스가 있습니다. 예를 들어 arr[10, 20, 30]에서 '10', '20', '30'은 메모리의 인덱스 0, 1, 2에 각각 저장됩니다.

참고: Python의 배열 인덱싱은 0부터 시작합니다.

  • 배열은 동일한 유형의 값, 즉 동종 요소만 포함할 수 있습니다. 예를 들어,

arr[1, 2, 3]

arr['a', 'b', 'c']

Python의 배열은 일반적으로 유사한 항목의 목록을 저장하는 데 사용됩니다. 디스플레이의 실제 사용 사례 중 하나는 특정 주식의 주가를 일정 기간 동안 저장하는 것입니다. 특정 주식과 날짜의 종가는 그대로 유지됩니다. 이는 배열과 같은 불변 데이터 구조에 이러한 세부 정보를 저장하는 것이 훨씬 더 합리적임을 의미합니다.

실제로 NumPy 배열은 일반적으로 데이터 과학 및 기계 학습에서 대규모 데이터 세트의 데이터를 저장하는 데 사용됩니다. 각 NumPy 배열은 데이터 세트의 기능에 해당합니다.

파이썬의 목록

목록은 Python에서 지원되는 4개의 내장 컨테이너 또는 데이터 구조 중 하나입니다. 목록 사용의 주요 이점 중 하나는 단일 목록에 여러 데이터 유형의 값을 저장할 수 있다는 것입니다.

다음은 Python의 목록이 나타내는 주요 특성입니다.

  • 목록은 데이터 저장 측면에서 더 유연합니다. 여기에는 이기종 데이터, 즉 다른 유형의 요소가 포함될 수 있습니다. 예를 들어,

[1, '안녕하세요', ['x', 'y']]

  • 목록도 정렬 되며 목록에 저장된 요소는 인덱스를 사용하여 액세스할 수 있습니다. 음수 인덱스 는 목록 끝에서 요소에 액세스하는 데 사용할 수 있습니다. 예를 들어.,

myList = [20, 40, '안녕하세요', '세계']

# 두 번째 마지막 요소 인쇄

인쇄(myList[-2])

산출

  • 목록 초기화 후에 목록을 쉽게 변경할 수 있습니다 . 값을 수정하려면 요소의 인덱스를 사용하여 액세스합니다.

자동차 = ['포드', '테슬라', '재규어']

자동차[2] = 'BMW'

  • 다차원 목록은 중첩 목록 개념을 사용하여 Python에서도 구현할 수 있습니다. 이러한 다차원 목록은 Python에서 다차원 배열로 사용할 수 있습니다.

myArr = [[1, 2], [3, 4]]

# 생성된 2차원 배열:

# |1, 2|

# |3, 4|

Python에서 다차원 이기종 목록의 실제 사용 사례는 제품 유형, 범주, 비용 가격, 판매 가격 등과 같은 제품 세부 정보 집합을 저장할 수 있습니다. 이러한 다차원 목록의 각 목록은 다음을 나타냅니다. 제품. 목록은 변경 가능하므로 원할 때마다 제품 세부 정보를 변경하는 것이 더 쉬워집니다.

Python 개발자 지망생이라면 Python에서 배열과 목록의 기본적인 차이점을 다루는 것이 핵심입니다. 따라서 더 이상 고민하지 않고 Python Array vs. List에 대한 표 형식의 설명으로 바로 이동하겠습니다.

파이썬에서 배열과 목록의 차이점 알기

Python Array vs List : 승자는 누구입니까?

매개변수

목록 정렬

선언

목록은 Python에 내장되어 있으므로 선언할 필요가 없습니다.

목록 = [ 10 , 20 , 30 ]

배열을 선언하려면 배열 모듈이나 NumPy 라이브러리 를 가져와야 합니다 .

my_arr_1 = array.array( 'i' , [ 10 , 20 , 30 ])

데이터 형식

단일 목록에는 다른 데이터 유형에 속하는 값이 포함될 수 있습니다.

myList = [ 40 , '안녕하세요' , 'm' ]

배열의 모든 요소는 동일한 데이터 유형이어야 합니다.

myArr = arr.array(i, [ 1 , 0 , 9])

크기

목록 초기화 중에 Python이 일부 추가 요소를 초기화하므로 Python 목록의 크기 를 조정할 수 있습니다. 배열은 변경할 수 없는 일정한 크기를 갖습니다.

공간/

메모리

요소를 추가하거나 제거하기 위해 더 큰 공간과 메모리를 사용합니다.

보다 간결한 방식으로 데이터를 저장합니다.

데이터 저장고

소량의 데이터를 저장하는 데 선호됩니다.

많은 양의 데이터를 저장하는 데 선호

수학 연산

수학 연산에 직접 사용할 수 없습니다.

배열 요소는 고급 수학 연산을 사용하여 쉽게 조작할 수 있습니다.

데이터 표시

목록의 요소는 루프 없이 표시될 수 있습니다.

my_List = [ 1 , “데니스” ,[ 'a' , 'b' ]]

인쇄(my_List)

배열의 요소를 표시하려면 루프가 필요합니다.

배열 가져오기

my_Arr = array.array( 'i' , [ 1 , 2 , 3 ])

my_Arr 있는 i의 경우:

인쇄(나)

Python Array vs List : 승자는 누구입니까?

이 섹션을 읽고 있다면 이제 Python에서 목록과 배열의 차이점에 상당히 익숙해졌다는 의미입니다. 그러나 프로그램에서 Array 또는 List를 사용해야 하는 경우도 알고 있어야 합니다.

이 섹션에서는 이 두 가지 중에서 가장 적합한 데이터 구조를 선택해야 하는 다양한 상황에 대해 설명합니다.

요소 유형

데이터의 유형이 미리 정해지지 않은 경우 여러 유형에 속하는 데이터의 모음이 있습니다. 예를 들어, name(string) , ID(integer) marks(float) 같은 엔터티가 있는 학생의 기록을 저장하려면 목록 이 선호되는 선택입니다.

저장할 데이터가 동일한 데이터 유형에 속하는 경우 여기에서 배열 또는 목록 을 선호할 수 있습니다. 선택은 데이터 크기, 수행할 작업 및 사용과 같은 다른 매개변수에 따라 달라집니다.

메모리 소비

목록 초기화 중에 일부 추가 공간이 할당되기 때문에 목록의 메모리 소비가 더 많습니다. 데이터 수집이 상대적으로 작으면 여기서 목록 이 효율적인 선택입니다.

이미지 출처: webcourses@UCF

배열 의 메모리 소비가 목록보다 효율적이기 때문에 배열은 많은 양의 데이터를 저장하는 데 적합합니다.

이미지 출처: webcourses@UCF

지원되는 작업

데이터에 산술 연산이 필요하지 않은 경우 데이터 조작을 위해 더 나은 내장 함수를 지원하므로 목록 이 더 나은 선택이 될 수 있습니다.

반면에 수학 연산을 수행해야 하는 경우 배열 을 사용해야 합니다. NumPy 모듈은 삼각법 및 대수 연산을 포함한 많은 고급 수학 연산을 지원합니다.

가져올 모듈

모듈이나 라이브러리를 가져오지 않고 목록 을 선언할 수 있습니다 . 파이썬에 내장된 데이터 구조이기 때문에 일반적인 변수처럼 정의할 수 있습니다.

그러나 배열 은 Python의 기본 컨테이너 중 하나가 아닙니다. 가장 많이 사용되는 두 가지 모듈인 array NumPy있습니다. 각 모듈에는 어레이에 저장된 데이터를 조작하고 관리하기 위한 사전 정의된 기능이 있습니다.

결론

이 기사에서는 Python에서 배열과 목록의 차이점을 통찰력 있게 이해하는 데 필요한 모든 주제를 다뤘습니다. 또한 목록 또는 배열이 적합한 다양한 사용 사례에 대해서도 논의했습니다.

데이터 과학에서 여정을 시작하려면 upGrad의 데이터 과학 에 등록하십시오. 오늘 코스. upGrad 에서 방대한 코스 모음을 확인하십시오. 당신의 경력을 시작합니다.

Python에서 목록에 대해 배열을 언제 사용합니까?

다양한 시나리오에서 목록보다 Python 배열이 선호됩니다.

1. 파이썬의 배열은 리스트보다 더 간결하고 메모리를 적게 사용하므로 많은 양의 데이터를 저장해야 할 때 배열을 사용하는 것이 좋습니다.
2. 모든 요소가 동일한 데이터 유형일 때 목록을 사용하여 데이터를 저장할 필요가 없으므로 여기서 배열이 더 효율적입니다.
3. 배열에 저장된 데이터는 수학적으로 쉽게 조작할 수 있지만 목록에서는 상당히 불편합니다.

파이썬에서 배열과 목록 중 어느 것이 더 빠릅니까?

배열에 저장된 모든 요소는 동종, 즉 동일한 데이터 유형을 갖는 반면 목록에는 이종 요소가 포함되기 때문에 배열은 파이썬의 목록보다 빠릅니다.

또한 Python 배열은 C로 구현되어 Python 자체에 내장된 목록보다 훨씬 빠릅니다.

목록은 언제 Python에 데이터를 저장하는 데 더 적합합니까?

Python 목록은 데이터 저장에서 큰 의미를 가지며 여러 경우에 사용할 수 있습니다.

1. 데이터 유형이 다른 다양한 요소가 있는 경우 목록에 저장할 수 있으며 단순히 해당 인덱스를 참조하여 이러한 요소에 액세스할 수 있습니다.
2. 목록의 크기도 조정할 수 있습니다. 따라서 목록은 요소 수에 대해 확신할 수 없을 때 유용합니다.
3. 목록의 내장 기능은 데이터 조작에 매우 편리하기 때문에 소량의 데이터를 저장해야 하는 경우 목록을 매우 선호합니다.