I basically want a python equivalent of this in C:
int a[x];
but in python I declare an array like:
a = []
<
x=[]
for i in range(0,5):
x.append(i)
print(x[i])
You can't do exactly what you want in Python (if I read you correctly). You need to put values in for each element of the list (or as you called it, array).
But, try this:
a = [0 for x in range(N)] # N = size of list you want
a[i] = 5 # as long as i < N, you're okay
For lists of other types, use something besides 0. None
is often a good choice as well.
Just declare the list and append each element. For ex:
a = []
a.append('first item')
a.append('second item')
If you (or other searchers of this question) were actually interested in creating a contiguous array to fill with integers, consider bytearray and 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
also you can extend that with extend method of list.
a= []
a.extend([None]*10)
a.extend([None]*20)
If by "array" you actually mean a Python list, you can use
a = [0] * 10
or
a = [None] * 10