[python] 파이썬에서 배열을 선언하는 방법?

파이썬 에서 배열을 어떻게 선언 합니까?

설명서에서 배열에 대한 참조를 찾을 수 없습니다.



답변

variable = []

이제 variable빈 목록 *을 참조하십시오 .

물론 이것은 선언이 아니라 과제입니다. 파이썬은 동적으로 타입이 지정되기 때문에 파이썬에서 “이 변수는리스트 이외의 것을 가리켜서는 안됩니다”라고 말할 방법이 없습니다.


* 기본 내장 파이썬 타입을 배열이 아닌 list 라고합니다 . 이질적인 객체 컬렉션을 보유 할 수있는 임의 길이의 정렬 된 컨테이너입니다 (유형은 중요하지 않고 자유롭게 혼합 할 수 있음). 이것은 C 유형에 더 가까운 유형을 제공하는 array모듈 과 혼동되어서는 안됩니다 array. 내용은 동일해야하며 (동일한 유형) 길이는 여전히 동적입니다.


답변

이것은 파이썬에서 놀랍도록 복잡한 주제입니다.

실용 답변

배열은 클래스로 표시됩니다 list(참조 참조generator 와 혼합하지 마십시오 ).

사용 예를 확인하십시오.

# empty array
arr = []

# init with values (can contain mixed types)
arr = [1, "eels"]

# get item by index (can be negative to access end of array)
arr = [1, 2, 3, 4, 5, 6]
arr[0]  # 1
arr[-1] # 6

# get length
length = len(arr)

# supports append and insert
arr.append(8)
arr.insert(6, 7)

이론적 답변

기본적으로 파이썬 list은 항목에 대한 참조를 포함하는 실제 배열의 래퍼입니다. 또한 기본 배열은 약간의 추가 공간으로 생성됩니다.

이것의 결과는 다음과 같습니다.

  • 랜덤 액세스는 정말 저렴합니다 ( arr[6653]와 동일 arr[0])
  • append 추가 공간이있는 동안 작업은 ‘무료’입니다
  • insert 작업이 비싸다

멋진 작업 테이블 복잡성을 확인하십시오 .

또한이 그림을 참조하십시오. 여기서 배열, 참조 배열 및 링크 된 목록 간의 가장 중요한 차이점을 보여 주려고했습니다.
배열, 어디서나 배열


답변

실제로 선언하지는 않지만 파이썬에서 배열을 만드는 방법입니다.

from array import array
intarray = array('i')

자세한 내용은 배열 모듈을 참조하십시오 : http://docs.python.org/library/array.html

이제 배열을 원하지 않고 목록을 원하지만 다른 사람들이 이미 대답했습니다. 🙂


답변

처음 30 개의 셀이 이미 채워진 목록을 원한다고 생각합니다. 그래서

   f = []

   for i in range(30):
       f.append(0)

이것을 사용할 수있는 예는 피보나치 순서입니다. 프로젝트 오일러의 문제 2 참조


답변

방법은 다음과 같습니다.

my_array = [1, 'rebecca', 'allard', 15]


답변

계산을 위해 다음 과 같이 numpy 배열을 사용 하십시오.

import numpy as np

a = np.ones((3,2))        # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3])     # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100)  # an array with 100 points beteen (and including) 2 and 3

print(a*1.5)  # all elements of a times 1.5
print(a.T+b)  # b added to the transpose of a

이 numpy 배열은 디스크에서 저장 및로드 할 수 있으며 (압축 된 경우에도) 대량의 요소를 사용한 복잡한 계산은 C와 비슷합니다.

과학적인 환경에서 많이 사용됩니다. 자세한 내용은 여기 를 참조 하십시오 .


답변

JohnMachin의 의견 은 실제 답변이되어야합니다. 다른 모든 대답은 내 의견으로는 해결 방법입니다! 그래서:

array=[0]*element_count