如何遍历一个哈希表?
来源:4-3 set和map不同底层实现的区别
烈焰卡卡
2020-01-16
老师好,最近瞎琢磨,就想到了一个问题,如何遍历一个哈希表?
比如在python中,dict.items()就可以遍历一个哈希表。但是像python中这种遍历哈希表的原理是怎样的呢?
我理解哈希表其实就是一个数组,通过哈希之后计算出数组的索引,将value的指针存到对应的数组中。如果依次遍历的话,整个数组中肯定会出现一些尚未被初始化的野指针之类的错误该如何判断是否真正有值?还是说python本身在初始化一个字典的时候,像某些编译器一样,会把所有指针给初始化?
写回答
1回答
-
liuyubobobo
2020-01-16
就是依次遍历每一个哈希地址,然后遍历每一个哈希地址下存储的元素。
如果一个哈希地址下没有存任何元素,就是空,略过这个地址就好。
近乎对于任何语言来说,开辟一片内存空间,由于安全原因,都应该做初始化。对于 Python,只需要 [None] * size 就好。
不过,Python 标准库底层的数据结构不是这么实现的,而是使用 C 实现的。
继续加油!:)
00
相似问题