Pythonリスト/辞書の操作時間の複雑さ
Python List Dictionary Operation Time Complexity
記事のディレクトリ
#1環境
Python3.7.3
#2リスト
オペレーティング | 指示 | 時間の複雑さ |
インデックス(値) | リストの要素のインデックスを見つける | または(1) |
a = index(value) | インデックスの割り当て | または(1) |
append(value) | チームの最後に追加 | または(1) |
ポップ () | チームテールの削除 | または(1) |
pop(インデックス) | インデックスに基づいて要素を削除します | オン) |
insert(index、value) | インデックスに基づいて要素を挿入します | O(n)反復 |
で検索) | リスト検索(実際には、inキーワード) | オン) |
スライス[x:y] | スライス、xを取得、yはO(1)、中央のx、yの値を取得O(k) | はい) |
デルスライス[x:y] | スライスを削除し、データを削除し、削除/マージする必要があります | オン) |
逆行する | リストの反転 | オン) |
ソート | ソート | O(nlogn) |
#3ディクト
オペレーティング | 指示 | 時間の複雑さ |
コピー | コピー | オン) |
get(value) | 入手します | または(1) |
set(value) | 変更する | または(1) |
delete(value) | 削除 | または(1) |
search(value) | 辞書検索 | または(1) |
iterration(value) | 辞書の反復 | オン) |
#辞書機能
- dictに10個の要素があるか100,000個の要素があるかに関係なく、検索速度は高速です。検索速度は同じです。リストの検索速度は、要素が増えるにつれて徐々に低下します。
しかし、dict検索の速度にはコストがかかります。 dictの欠点は、多くのメモリを消費し、多くのコンテンツを浪費することです。リストは正反対で、メモリの使用量は少なくなりますが、検索速度は遅くなります。 - 辞書の値は、標準オブジェクトまたはユーザー定義オブジェクトのいずれかとして、制限なしで任意のPythonオブジェクトを取得できますが、キーは取得できません。同じキーを2回表示することはできません。
キーは不変である必要があります。これにより、数字、文字列、またはタプルで再生できるため、リストを使用しても機能しません。 - dictの2番目の特徴は、格納されているキーと値のシーケンスのペアが順番になっていないことです。これはリストと同じではありません。