0

言語は、各要素に確保するスペースをどのように知るのでしょうか? それとも、データ型に必要な最大スペースを確保していますか? (大きな浮動小数点数について話してください)。その場合、少し効率が悪いのではないですか?

4

4 に答える 4

1

Pythonは、さまざまなオブジェクトへの参照のためにリスト内に十分なスペースのみを予約します。オブジェクトがインスタンス化されるときに十分なスペースを予約するのは、オブジェクトのアロケータ次第です。

于 2012-12-25T09:00:57.693 に答える
1

Python の配列は、arrayモジュールを介して行われます。それらは異なるデータ型を格納するのではなく、特定の数値の配列を格納します。

listタイプのことだと思います。値は含まれていません。オブジェクトへの参照が含まれているだけで、どのタイプのオブジェクトでもかまいません。

これらのいずれも、要素用のスペースをまったく予約していません (まあ、そうですが、それは内部実装の詳細です)。要素がリスト/配列に追加されるときに必要な要素のためのスペースを追加します。

リスト型は確かに配列型よりも効率が悪いため、配列型が存在します。

于 2012-12-25T09:02:14.747 に答える
0

これは参照の配列であり、要素オブジェクトへの参照を格納するだけです。したがって、各ブロックのサイズは特定です。

http://docs.python.org/2/faq/design.html#how-are-lists-implemented

于 2012-12-25T09:05:00.103 に答える
0

C 言語の用語では、Python のリストは に似ていますがPyObject *mylist[100]、動的に割り当てられる点が異なります。これは、Python オブジェクトへの参照を格納するメモリの連続したチャンクです。

于 2012-12-25T12:12:31.897 に答える