美文网首页
6-5 set和dict的背后原理

6-5 set和dict的背后原理

作者: 正在努力ing | 来源:发表于2018-08-26 15:54 被阅读0次

    dict的性能远远高于list

    在list中随着数据量的增大,查找时间也会增大

    在dict中随着数据量的增大,查找时间不会增大

    原因:

    因为dict使用哈希表实现的,也就是散列表
    哈希表是一个非常松散的数组,因为他不是填满的,要求留下空白的表元(就是一堆key和value组成的东西)

    哈希表存储原理:

    dict中的key会调用内置的hash()方法(如果是自定义的类就会调用自定义的hash;),把hash()得到的新key作为 索引或者说数组下标,找到位置把key和value的引用一起存入数组中

    散列值和相对性

    如果1==1.0 成立, 那么hash(1) == hash(1.0)也会成立

    哈希表的查找:

    因为本质上是数组,所以通过偏移量就能查找到对应的目标

    dict的优缺点:

    1 key必须是可以哈希的

    意味着key是不可变的

    2 字典在内存上花销巨大

    因为散列表有大部分是空白的,所以导致它在空间上效率低下;

    3 键的查询很快

    (本质就是以空间换时间),如dict的特性:在dict中随着数据量的增大,查找时间不会增大

    4:键的次序取决于数据添加顺序

    相关文章

      网友评论

          本文标题:6-5 set和dict的背后原理

          本文链接:https://www.haomeiwen.com/subject/rnyoiftx.html