[python] 파이썬에서 어떤 크기의 빈 배열을 어떻게 얻습니까?

기본적으로 C에서 이와 동등한 파이썬을 원합니다.

int a[x];

하지만 파이썬에서는 다음과 같은 배열을 선언합니다.

a = []

문제는 다음과 같은 값으로 임의의 슬롯을 할당하고 싶다는 것입니다.

a[4] = 1

그러나 배열이 비어 있기 때문에 파이썬으로는 할 수 없습니다.



답변

“배열”이 실제로 Python 목록을 의미하는 경우 다음을 사용할 수 있습니다.

a = [0] * 10

또는

a = [None] * 10


답변

파이썬에서 원하는 것을 정확히 할 수는 없습니다 (내가 올바르게 읽었다면). 목록의 각 요소에 대한 값을 입력해야합니다 (또는 배열이라고 부르는대로).

그러나 이것을 시도하십시오.

a = [0 for x in range(N)]  # N = size of list you want
a[i] = 5  # as long as i < N, you're okay

다른 유형 목록의 None경우 0 이외의 것을 사용하십시오. 종종 좋은 선택입니다.


답변

numpy를 사용할 수 있습니다.

import numpy as np

빈 배열의 예 :

np.empty([2, 2])
array([[ -9.74499359e+001,   6.69583040e-309],
       [  2.13182611e-314,   3.06959433e-309]])  


답변

목록을 선언하고 각 요소를 추가하기 만하면됩니다. 예 :

a = []
a.append('first item')
a.append('second item')


답변

또한 목록의 확장 방법으로 확장 할 수 있습니다.

a= []
a.extend([None]*10)
a.extend([None]*20)


답변

당신 (또는이 질문의 다른 검색 자)이 실제로 정수로 채우기 위해 연속 배열을 만드는 데 관심이 있다면 bytearraymemoryivew를 고려 하십시오 .

# cast() is available starting Python 3.3
size = 10**6
ints = memoryview(bytearray(size)).cast('i')

ints.contiguous, ints.itemsize, ints.shape
# (True, 4, (250000,))

ints[0]
# 0

ints[0] = 16
ints[0]
# 16


답변

x=[]
for i in range(0,5):
    x.append(i)
    print(x[i])