初学 python 我不能理解 dict 为什么比 list 快
比如 list[5]是从头遍历 那么 dict['key']不是对 key 的遍历吗
1
polo2222 2016-12-29 13:50:14 +08:00
dict['key']不是对 key 的遍历。
python dict 的实现使用了 hash 表, access 的复杂度是 O(1)。 |
2
justfly 2016-12-29 14:03:45 +08:00
list[5] 也不是遍历 也是 O(1)
|
3
justfly 2016-12-29 14:05:02 +08:00
ps 只有链表随机读才需要从头遍历
|
4
BOYPT 2016-12-29 14:05:28 +08:00
先问是不是,再问为什么系列
|
5
kfll 2016-12-29 14:08:58 +08:00
楼主理解的不对,是查询表上, dict 会比 list 快,你可以类比一下数据库有索引和没有索引的情况。
https://wiki.python.org/moin/TimeComplexity 应该比较 list 的 x in s 和 set 的 x in s 或者 dict 的 Get Item |
6
yangmt92 OP @kfll 对,我是这个意思。刚刚看了一下哈希初步明白了。 dict 的 x in s 是 position = f(key),O(1)。 list 的 x in s ,O(N)
|
7
jugelizi 2016-12-29 14:21:19 +08:00
dict 就是查字典的意思嘛,你按索引查字典和一页一翻你说哪个快
|