Подтвердить что ты не робот

Как мне получить пустой массив любого размера в Python?

Я в основном хочу Python эквивалент этого в C:

int a[x];

но в Python я объявляю массив как:

a = []

и проблема в том, что я хочу назначить случайные слоты со значениями, такими как:

a[4] = 1

но я не могу сделать это с Python, так как массив пуст.

4b9b3361

Ответ 1

Если по "массиву" вы действительно имеете в виду список Python, вы можете использовать

a = [0] * 10

или

a = [None] * 10

Ответ 2

Вы не можете сделать именно то, что хотите в Python (если я правильно прочитаю). Вам нужно поместить значения для каждого элемента списка (или, как вы его назвали, массива).

Но попробуйте следующее:

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

Для списков других типов используйте что-то, кроме 0. None также является хорошим выбором.

Ответ 3

Вы можете использовать numpy:

импортировать numpy как np

Пример из Пустой массив:

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

Ответ 4

также вы можете расширить это с помощью метода расширения списка.

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

Ответ 5

Просто объявите список и добавьте каждый элемент. Для примера:

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

Ответ 6

Если вы (или другие искатели этого вопроса) на самом деле были заинтересованы в создании непрерывного массива для заполнения с целыми числами, рассмотрит ByteArray и memoryivew:

# 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

Ответ 7

Если вы на самом деле хотите массив в стиле C

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

Обратите внимание, что в python нет понятия неинициализированной переменной. Переменная - это имя, которое связано со значением, поэтому это значение должно иметь что-то. В приведенном выше примере массив инициализируется нулями.

Тем не менее, это редко встречается в python, если только вам это не нужно для низкоуровневых вещей. В большинстве случаев лучше использовать пустой список или пустой массив numpy, как предлагают другие ответы.