programing

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

nasanasas 2020. 8. 26. 07:58
반응형

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


기본적으로 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를 사용할 수 있습니다.

numpy를 np로 가져 오기

빈 배열의:

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

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

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

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

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

당신 (또는이 질문의 다른 검색 자)이 실제로 정수로 채우기 위해 연속 배열을 만드는 데 관심이 있다면 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

실제로 C 스타일 배열을 원한다면

import array
a = array.array('i', x * [0])
a[3] = 5
try:
   [5] = 'a'
except TypeError:
   print('integers only allowed')

파이썬에는 초기화되지 않은 변수의 개념이 없습니다 . 변수는 값에 바인딩 된 이름이므로 해당 값에는 무언가가 있어야합니다. 위의 예에서 배열은 0으로 초기화됩니다.

그러나 이것은 실제로 저수준 항목에 필요하지 않는 한 파이썬에서 흔하지 않습니다. 대부분의 경우 다른 답변에서 알 수 있듯이 빈 목록 또는 빈 numpy 배열을 사용하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/5205575/how-do-i-get-an-empty-array-of-any-size-in-python

반응형