私は基本的に、Cでこれと同等のpythonが欲しいです:
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にはn-initialized変数の概念がないことに注意してください。変数は値にバインドされる名前であるため、その値には何かが必要です。上記の例では、配列はゼロで初期化されます。
ただし、低レベルのものに実際に必要な場合を除き、これはPythonでは一般的ではありません。ほとんどの場合、他の答えが示唆するように、空のリストまたは空のnumpy配列を使用するほうが良いでしょう。