博客摘要解答高频面试题字典为什么查询速度O(1)3.6前后字典顺序差异。同时汇总4种高效遍历方式解决遍历中删除key报错问题。一、底层哈希表原理Python字典底层采用开放寻址法哈希表存储结构分为哈希表索引、key、value三部分存入key通过hash()函数计算key哈希值取余得到数组下标存入对应位置查询key直接计算哈希值定位下标无需逐个遍历时间复杂度稳定O(1)哈希冲突开放寻址法向后寻找空位避免数据覆盖版本差异Python3.6底层数组存储默认插入有序3.5及以前无序不要依赖低版本字典顺序。二、增删改查标准写法增d[key]value、d.setdefault()不存在新增存在不修改避免覆盖改直接赋值d[key]新值key存在即修改查[]取值不存在报错、get()取值不存在返回None生产首选删pop指定key删除、popitem尾部删除、clear清空、del全局删除三、四大遍历技巧与避坑遍历keyfor k in d.keys()遍历valuefor v in d.values()遍历键值对最常用for k,v in d.items()高危避坑禁止遍历字典同时增删key会触发迭代器异常解决方案遍历列表副本