Ответ 1
Если по "массиву" вы действительно имеете в виду список Python, вы можете использовать
a = [0] * 10
или
a = [None] * 10
Я в основном хочу Python эквивалент этого в C:
int a[x];
но в Python я объявляю массив как:
a = []
и проблема в том, что я хочу назначить случайные слоты со значениями, такими как:
a[4] = 1
но я не могу сделать это с Python, так как массив пуст.
Если по "массиву" вы действительно имеете в виду список Python, вы можете использовать
a = [0] * 10
или
a = [None] * 10
Вы не можете сделать именно то, что хотите в 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
также является хорошим выбором.
Вы можете использовать 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')
Если вы (или другие искатели этого вопроса) на самом деле были заинтересованы в создании непрерывного массива для заполнения с целыми числами, рассмотрит 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
Если вы на самом деле хотите массив в стиле C
import array
a = array.array('i', x * [0])
a[3] = 5
try:
[5] = 'a'
except TypeError:
print('integers only allowed')
Обратите внимание, что в python нет понятия неинициализированной переменной. Переменная - это имя, которое связано со значением, поэтому это значение должно иметь что-то. В приведенном выше примере массив инициализируется нулями.
Тем не менее, это редко встречается в python, если только вам это не нужно для низкоуровневых вещей. В большинстве случаев лучше использовать пустой список или пустой массив numpy, как предлагают другие ответы.