10

新しいペアを導入すると、辞書の先頭に挿入されます。最後に追加することは可能ですか?

4

5 に答える 5

19

アップデート

Python 3.7 以降、辞書は挿入順序を記憶しています。新しい値を追加するだけで、ディクショナリを反復する場合に「最後」になることを確認できます。


辞書には順序がないため、始まりも終わりもありません。表示順は任意です。順序が必要な場合は、 の代わりに of を使用listできtupleますdict

In [1]: mylist = []

In [2]: mylist.append(('key', 'value'))

In [3]: mylist.insert(0, ('foo', 'bar'))

dict後で簡単に変換できます。

In [4]: dict(mylist)
Out[4]: {'foo': 'bar', 'key': 'value'}

collections.OrderedDictまたは、 IamAlexAlright の提案に従ってa を使用します。

于 2012-11-05T19:51:39.060 に答える
7

dictPythonのAは「順序付け」されていません-Python2.7以降にはありますがcollections.OrderedDict、それとは別に-いいえ... Pythonの辞書の要点は、効率的なキー->ルックアップ値です...ハッシュアルゴリズムに応じて完全に任意です。

于 2012-11-05T19:53:14.050 に答える
5

いいえ。コレクションモジュールからOrderedDictを確認してください。

于 2012-11-05T19:53:03.050 に答える
0

更新された値を の最後に移動する場合はdict、最初にキーをポップしてからdict.

例えば:

In [1]: number_dict = {str(index): index for index in range(10)}
In [2]: number_dict.update({"3": 13})
In [3]: number_dict
Out[3]: 
{'0': 0,
 '1': 1,
 '2': 2,
 '3': 13,
 '4': 4,
 '5': 5,
 '6': 6,
 '7': 7,
 '8': 8,
 '9': 9}

In [4]: number_dict = {str(index): index for index in range(10)}
In [5]: number_dict.pop("3", None)
In [6]: number_dict.update({"3": 13})
In [7]: number_dict
Out[7]: 
{'0': 0,
 '1': 1,
 '2': 2,
 '4': 4,
 '5': 5,
 '6': 6,
 '7': 7,
 '8': 8,
 '9': 9,
 '3': 13}
于 2022-01-26T23:29:56.537 に答える