通常、辞書内のキー/値の順序は任意であることを知っています。しかし、辞書を「手書き」で宣言し (以下を参照)、キーを追加したり削除したりしない場合、これはキーの順序が宣言どおりに保持されることを意味しますか?
いくつかの簡単な実験を行ったところ、答えはイエスのようですが、これを当てにする前に、確認したいと思いました.
「手書き」とは、各キーと値を一度に明示的に宣言することを意味します。
myDict = {key1: val1, key2: val2, key3: val3, .... }
通常、辞書内のキー/値の順序は任意であることを知っています。しかし、辞書を「手書き」で宣言し (以下を参照)、キーを追加したり削除したりしない場合、これはキーの順序が宣言どおりに保持されることを意味しますか?
いくつかの簡単な実験を行ったところ、答えはイエスのようですが、これを当てにする前に、確認したいと思いました.
「手書き」とは、各キーと値を一度に明示的に宣言することを意味します。
myDict = {key1: val1, key2: val2, key3: val3, .... }
Python では、辞書は本質的に順不同です。collections.OrderedDict順序を維持したい場合に使用します。挿入順序collections.OrderedDictが保持されることに注意してください。
また、キーが宣言順に保持されるという概念の反例:
>>> {1:2, 4:5, 2:3}
{1: 2, 2: 3, 4: 5}
辞書キーもソートする必要はありません。
>>> {-1:-1, -2:-2, 1:1}
{1: 1, -2: -2, -1: -1}
したがって、辞書のキーがOrderedDict.