ホームページ >バックエンド開発 >Python チュートリアル >Pythonのdict関数の意味を3分で理解する

Pythonのdict関数の意味を3分で理解する

Tomorin
Tomorinオリジナル
2018-08-17 14:47:575564ブラウズ

Python には組み込み辞書があります: dict サポート、dictフルネーム dictionary、他の言語ではマップとも呼ばれ、キーと値を使用します (key- value) ストレージ、非常に高速な検索速度を備えています。

たとえば、クラスメートの名前に基づいて対応する成績を検索したいとします。リストを使用して実装する場合は、2 つのリストが必要です:

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]

名前を指定した場合、対応する成績を見つけたい場合は、まず名前の対応する位置を見つけてから、スコアから対応する結果を取得します。リストが長ければ長いほど、時間がかかります。

dict を使用して実装した場合、必要なのは「名前」と「スコア」の比較テーブルだけであり、結果は名前に基づいて直接検索できます。テーブルがどれほど大きくても関係ありません。検索速度が遅くなることはありません。 Python を使用して、次のように dict を作成します。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

なぜ dict 検索はそれほど速いのですか? dict の実装原理は辞書を引くのと同じだからです。辞書に 10,000 の漢字が含まれており、特定の単語を調べたいとします。1 つの方法は、必要な単語が見つかるまで辞書を最初のページから戻すことです。この方法は、リスト内の要素を見つけることです。リストを増やすと、検索が遅くなります。

2 つ目の方法は、辞書の索引表 (部首表など) で単語に対応するページ番号を調べてから、直接そのページに移動して単語を見つける方法です。どの単語を探している場合でも、この検索速度は非常に速く、辞書のサイズが大きくなっても遅くなりません。

dict は 2 番目の実装メソッドです。「Michael」などの名前を指定すると、dict はマイケルのスコアに対応する「ページ番号」を内部で直接計算できます。これは、数字 95 が格納されるメモリです。アドレスを直接取り出すので速度が非常に速いです。

お察しのとおり、このキーと値の格納方法では、値を入力するときにキーに基づいて値の格納場所を計算する必要があるため、値を取得するときに直接取得できます。キーに基づく値。

データを dict に入れる方法は、初期化時に指定する以外に、キーによって入れることもできます:

>>> d['Adam'] = 67
>>> d['Adam']
67

1 つのキーは 1 つの値にのみ対応できるため、1 つのキー複数回入力できます。値を入力すると、後続の値が前の値を消去します:

>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88

キーが存在しない場合、dict はエラーを報告します:

>>> d['Thomas']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: &#39;Thomas&#39;

キーが存在しないというエラーが表示されます。方法は 2 つあります。最初の方法は、次の方法でキーが存在するかどうかを確認することです:

>>> &#39;Thomas&#39; in d
False


以上がPythonのdict関数の意味を3分で理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。