新しいペアを導入すると、辞書の先頭に挿入されます。最後に追加することは可能ですか?
19275 次
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
dict
Pythonの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 に答える