• hash介绍


    # hash方法
    # 底层数据结构基于hash值寻址的优化操作
    # hash是一个算法
    # 能把一个要存在内存里面的值经过一系列的值
    # 不同值的hash结果是不一样的
    # 对同一个值多次执行python代码的hash是不一样的
    # 但是对同一个值,在一次执行python代码的时候hash值永远不变
    
    print(hash("abc"))
    print(hash("abc"))
    # -6417301309113939838
    # -6417301309113939838  在一次执行中hash值不变
    
    # 字典的寻址
    # ["key","value"]  先对key做一个hash得到一个地址,再把value 放入这个地址,当字典取址时,再对key做一个hash,通过这个hash直接
    #找到地址,取出地址里面的内容,所以字典不会收到数据量大小的影响
    
    
    # set集合
    se = {1,2,3,4,5,6,"a",1,2,3}
    print(hash(1))  # 一般情况下数字的hash就是其本身
    # 但是hash不是万能的,假设两个和复杂的字符串(这里的字符串是计算hash值的字符串)hash值恰好相等(可能性很小很小),如果后面一个的值(指的是进行hash的值)和前面相等则覆盖,如果不相等,后面一个二次寻址
    # 为什么需要先比较hash值而不是先比较值,因为效率问题,如果数据量很大,最后一个数据需要和前面所有值比较一便才能存储,效率低下。如果先执行hash,极其偶然情况下这个地址有值,才再比较
    
    print(se)
    
    d = {"key":"v1","key":"v20"}  # 都是key进行hash
    print(d)  # {'key': 'v20'}
  • 相关阅读:
    [转]VC++中操作XML(MFC、SDK)
    VC解析XML--使用CMarkup类解析XML
    C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
    socket编程的select模型
    libevent源码分析
    socket异步编程--libevent的使用
    Win32编程点滴3
    Win32编程点滴5
    thrift之TTransport层的堵塞的套接字I/O传输类TSocket
    Thrift之代码生成器Compiler原理及源码详细解析1
  • 原文地址:https://www.cnblogs.com/yfjly/p/10606298.html
Copyright © 2020-2023  润新知