最近我很惊讶地发现,虽然保证字典可以保留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实现的效率提高是否也不适用于集合?
我不是在寻找指向有序集合实现的指针,也不是在寻找将dicts作为集合的替代品的方法。我只是想知道为什么Python团队没有使内置集合保留命令的同时保留命令。
dict
和set
自2.7。