我最近惊讶地发现,虽然在 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 团队没有在对字典这样做的同时让内置集合保持顺序。