ds之哈希表

哈希表

从Python 3.6开始,字典的Key将会保留插入时候的顺序。例如:
在Python 3.6和以上的版本中,

1
2
3
4
5
6
7
>>> a = {'hello': 'world', 'xyz': 'abc', '163': 'netease'}
>>> print(a)
{'hello': 'world', 'xyz': 'abc', '163': 'netease'}
>>> keys = list(a.keys())
>>> assert keys[0] == 'hello'
>>> assert keys[1] == 'xyz'
>>> assert keys[2] == '163'

在Python 3.5或者以下的版本中:

1
2
3
>>> a = {'hello': 'world', 'xyz': 'abc', '163': 'netease'}
>>> print(a)
{'xyz': 'abc', 'hello': 'world', '163': 'netease'}

需要注意的是,Python 3.6以后的字典,保留的是插入时候的顺序 并不是可以被排序的那种顺序。

哈希冲突解决

  • 开放定址法
  • 链地址法