Python 배열 대 목록: 차이점 및 사용 사례
게시 됨: 2021-11-03Python은 지난 몇 년 동안 데이터 과학에서 다른 언어보다 우위를 점했으며 데이터 구조가 중요한 역할을 합니다. 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 목록은 데이터 저장에서 큰 의미를 가지며 여러 경우에 사용할 수 있습니다.Python에서 목록에 대해 배열을 언제 사용합니까?
1. 파이썬의 배열은 리스트보다 더 간결하고 메모리를 적게 사용하므로 많은 양의 데이터를 저장해야 할 때 배열을 사용하는 것이 좋습니다.
2. 모든 요소가 동일한 데이터 유형일 때 목록을 사용하여 데이터를 저장할 필요가 없으므로 여기서 배열이 더 효율적입니다.
3. 배열에 저장된 데이터는 수학적으로 쉽게 조작할 수 있지만 목록에서는 상당히 불편합니다. 파이썬에서 배열과 목록 중 어느 것이 더 빠릅니까?
또한 Python 배열은 C로 구현되어 Python 자체에 내장된 목록보다 훨씬 빠릅니다. 목록은 언제 Python에 데이터를 저장하는 데 더 적합합니까?
1. 데이터 유형이 다른 다양한 요소가 있는 경우 목록에 저장할 수 있으며 단순히 해당 인덱스를 참조하여 이러한 요소에 액세스할 수 있습니다.
2. 목록의 크기도 조정할 수 있습니다. 따라서 목록은 요소 수에 대해 확신할 수 없을 때 유용합니다.
3. 목록의 내장 기능은 데이터 조작에 매우 편리하기 때문에 소량의 데이터를 저장해야 하는 경우 목록을 매우 선호합니다.