Python の辞書 Keys() と Values() は常に同期していますか?
Python では、辞書はキーを格納する強力なデータ構造です。値のペア。 key() メソッドと value() メソッドを使用してキーと値を取得すると、次の例で明らかなように、結果として得られるリストが 1 対 1 のマッピングを維持しているように見えることがよくあります。
d = {'one': 1, 'two': 2, 'three': 3} k, v = d.keys(), d.values() for i in range(len(k)): print(d[k[i]] == v[i]) # Output: True # True # True
対応関係の維持
ただし、辞書が変更されても、この 1 対 1 マッピングが維持されることは保証されていますか?修正? Python 2.x と 3.x の両方の Python ドキュメントによると、これは実際に当てはまります:
"If items(), key(), value(), iteritems(), iterkeys(),および itervalues() が辞書への変更を介さずに呼び出されると、リストは直接対応します。"
したがって、 key() と value() の呼び出しの間で辞書が変更されない限り、上記の for ループは常に True を出力します。辞書の反復におけるキーと値のこの対応は、Python の辞書実装の貴重な側面であり、格納されたデータへの予測可能かつ効率的なアクセスを提供します。
以上がPython の辞書 Keys() と Values() は常に 1 対 1 のマッピングを維持しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。