1

のような整数配列の配列を作成する必要があります[[0,1,2],[4,4,5,7]...[4,5]]。内部配列のサイズは変更可能です。内部配列の最大数は です2^26。では、この配列を更新するための最速の方法として何をお勧めしますか? 私が使用すると、list=[[]] * 2^26初期化は非常に高速ですが、更新は非常に遅くなります。代わりに私は使用します

list=[] , for i in range(2**26): list.append.([]).

現在、初期化は遅く、更新は高速です。たとえば、内部配列が 16777216 で、各配列の平均要素数が 2^26 要素の配列で 0.213827311993 の場合、1.67728900909 秒かかります。それは良いことですが、もっと大きなデータを処理するので、最善の方法が必要です。初期化時間は重要ではありません。ありがとうございました。

4

1 に答える 1

0

あなたが求めるものはかなり問題です。データ構造が異なれば、プロパティも異なります。一般に、すばやくアクセスする必要がある場合は、リストを使用しないでください。それらには線形のアクセス時間があります。つまり、それらを多く入れるほど、要素にアクセスするのに平均で時間がかかります。

おそらくnumpyを使用できますか?そのライブラリには、非常に高速にアクセスできるマトリックスがあり、その場で再形成できます。ただし、行を追加または削除する場合は、通常、データ全体を再割り当て (したがってコピー) するため、少し遅くなる可能性があります。したがって、それはトレードオフです。

さまざまなサイズの非常に多くの内部配列が必要な場合は、おそらく内部配列を含む辞書を作成できます。整数でインデックス付けされている場合、リストよりもはるかに高速になると思います。次に、numpy を使用して内部配列を作成できます。

于 2012-07-17T06:52:34.527 に答える