• 技术文章 >常见问题 >Python常见问题

    Python中字典为什么比列表快?

     Ly Ly2020-05-16 16:00:17原创4609

    1、为什么Python中字典比列表快?

    因为字典中是键-值对(key-value),且字典无顺序、自动去重、占用内存多,用内存换取速度。最重要的是因为字典是hash类型的。

    2、那什么是hash呢?

    哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。

    如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

    3、dict会把所有的key变成hash 表,然后将这个表进行排序。

    你通过data[key]去查data字典中一个key的时候,python会先把这个key hash成一个数字,然后拿这个数字到hash表中看没有这个数字, 如果有,拿到这个key在hash表中的索引,拿到这个索引去与此key对应的value的内存地址那取值就可以了。

    专题推荐:字典与列表
    上一篇:Python字符串中一个汉字占几个字节? 下一篇:Python字典中如何根据值查找键?

    相关文章推荐

    • python的字典怎么写• python字典怎么删除键• 强烈推荐Python新手学习之——字典• Python字典如何换行• python中怎么将元组、字典转化为列表• python怎样删除字典中的元素• python如何将一串字符串转换为字典

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网