[解決済み] Python List vs. Array - when to use?
質問
1次元の配列を作成する場合、リストとして実装するか、標準ライブラリの'array'モジュールを使用することができます。 私はいつも1次元配列にはListを使っています。
arrayモジュールを使いたい理由や事情は何ですか?
パフォーマンスとメモリの最適化のためでしょうか、それとも何か明らかなことを見逃していますか?
解決方法は?
基本的に、Pythonのリストは非常に柔軟で、完全に異種の任意のデータを保持することができ、非常に効率的に、以下のように追加することができます。
償却定数時間
. もし、手間をかけずに効率的にリストを縮小したり拡大したりする必要があるのなら、この方法は最適です。 しかし、これらは
C言語の配列よりはるかに大きなスペース
これは、リストの各項目が個別のPythonオブジェクトを構築する必要があるためで、たとえ単純なCの型で表現できるデータであっても(たとえば
float
または
uint64_t
).
は、その
array.array
一方、この型はC言語の配列の薄いラッパーに過ぎない。 この型は同種のデータ(つまり、すべて同じ型)しか保持することができないので
sizeof(one object) * length
バイトのメモリが必要です。 たいていの場合、C 配列を拡張機能やシステムコールで公開する必要があるときに使用します (たとえば。
ioctl
または
fctnl
).
array.array
を表現するのも合理的な方法です。
ミュータブル
の文字列は、Python 2.x (
array('B', bytes)
). しかし、Python 2.6+と3.xではミュータブルな
バイト
という文字列を
bytearray
.
しかし、もしあなたが 数学 NumPy は複雑な多次元配列の演算を自動的にベクトル化することができます。
長い話を短くすると
:
array.array
は、以下の理由で均質な C 言語のデータ配列が必要な場合に便利です。
数学以外の
.
関連
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonによるjieba分割ライブラリ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] NumPyの配列はJSONシリアライザブルではない
-
[解決済み】Pythonの集合とリストの比較