ホームページ >バックエンド開発 >Python チュートリアル >Python 辞書の `keys()` と `values()` の対応は保証されていますか?

Python 辞書の `keys()` と `values()` の対応は保証されていますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-10 03:09:02254ブラウズ

Is the Correspondence Between `keys()` and `values()` in Python Dictionaries Guaranteed?

辞書のキーと値の対応を確保する

Python 辞書では、keys() メソッドと value() メソッドによりキーと値へのアクセスが提供されます。それぞれ辞書内の値。これらのメソッドによって返されるリストは 1 対 1 のマッピングを維持しているように見えることが観察されています。ここで、keys() の i 番目のキーは、values() の i 番目の値に対応します。

ただし、このマッピングが常に保証されているかどうかを確認することが重要です。具体的には、keys() と value() の呼び出しの間に辞書が変更されない場合、対応するリストが常に生成されるという仮定に頼ることができますか?

公式ドキュメント

Python 辞書のドキュメントには、keys() と value() の順序が保持されるかどうかが明示的に記載されていません。ただし、

d = {'one':1, 'two': 2, 'three': 3}
k, v = d という手がかりは得られます。私のためのkeys()、d.values()
range(len(k)):

True
True
True

この例は、辞書に変更が加えられない場合を示しています。 key() と value() の呼び出しの間、for ループは一貫して True を出力し、

さらなる観察

この観察を確認するために、より広範な検索が実施されました:

  • 2.x のドキュメントには次のように記載されています。 「If items()、keys()、values()、iteritems()、iterkeys()、およびitervalues() は辞書への変更を介さずに呼び出され、リストは直接対応します。
  • 3.x ドキュメントにもこのステートメントが含まれています。

これらのステートメントは、次のことを保証します。辞書が残っている限り、keys()とvalues()の間のマッピングは確かに保持されます。

結論

公式ドキュメントと経験的観察に基づいて、Python 辞書でkeys()とvalues()を作成せずに呼び出すと、次のように結論付けることができます。呼び出し間の辞書への変更は、キーと値のリスト間の 1 対 1 対応に依存できます。この信頼性の高いマッピングにより、辞書操作が簡素化され、一般的なプログラミング シナリオで予測可能な動作が確保されます。

以上がPython 辞書の `keys()` と `values()` の対応は保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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