LinkedHashMapは、予測可能な繰り返し順序を持つHashtableのようなデータ構造(Pythonのdict)のJava実装です。つまり、すべてのキーをたどる間、挿入によって順序付けられます。これは、挿入順序を維持している追加のリンクリストによって行われます。PythonのLinkedHashMapに相当します。
Pythonに相当するものはありますか?
LinkedHashMapは、予測可能な繰り返し順序を持つHashtableのようなデータ構造(Pythonのdict)のJava実装です。つまり、すべてのキーをたどる間、挿入によって順序付けられます。これは、挿入順序を維持している追加のリンクリストによって行われます。PythonのLinkedHashMapに相当します。
Pythonに相当するものはありますか?
あなたは、Python 2.7やPython> = 3.1にしている場合は、標準ライブラリにcollections.OrderedDictを使用することができます。
This answer質問へHow do you retrieve items from a dictionary in the order that they’re inserted?には、Python 3.xを使用しておらず、サードパーティのordereddict moduleに依存したくない場合に備えて、順序付き辞書の実装が含まれています。
リストを維持して挿入順序を追跡することで同じことができますが、Python 2.7とPython >=3.1には、コレクションモジュールにOrderedDictクラスがあります。
2.7より前にサブクラスdict
following this recipeをサブクラス化できます。
私はそうは思わない。あなたはdictとリストを使う必要があります。しかし、あなたはクラス内でそれを簡単に包み込み、keys
、__getitem__
、__setitem__
などを定義して、あなたが望むように動作させることができます。
私はこれがあなたが求めているものであるかどうかわからない:あなたがordereddictモジュールを使用して挿入するために、DICを注文することができます
>>> dic = {1: 'one', 2: 'two'}
>>> for k, v in dic.iteritems():
... print k, v
。
d = ordereddict(dic, relax=True)
OrderedDictはPython 3.1で提供されていますが、リンクしたドキュメントによれば3.0にはまだありません。 – kquinn
はい、そうです、私はそれを見落としました。編集されました。 – sykora