ディクテーションはPython 3.7以降で挿入順序を保持することが保証されていますが、セットはそうではないことを最近発見して驚きました。
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> d['d'] = 4
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> s = {'a', 'b', 'c'}
>>> s
{'b', 'a', 'c'}
>>> s.add('d')
>>> s
{'d', 'b', 'a', 'c'}
この違いの根拠は何ですか?Pythonチームがdictの実装を変更するのと同じ効率の改善は、セットにも適用されませんか?
私は順序付きセットの実装へのポインタや、セットの代わりとしてディクテーションを使用する方法を探していません。Pythonチームが組み込みセットでディクショナリーの順序を維持するのと同時になぜ順序を維持しないのか疑問に思っています。
dict
してset
2.7以降。