zoukankan      html  css  js  c++  java
  • python字典的一些深入体会

    python字典

    python字典一些深入体会

    python字典3个方法,items(),values(),keys(),返回的对象不是list,3个方法返回的对象可以迭代,字典也可以推导

    squares={number:number**2 for number in range(100)}  

    Cpython的字典采用散列表作为底层数据结构,只有可哈希的对象才能作为字典的键,可哈希的对象就是整个具有不变性的对象,而且可以和其他对象对比,如果一个对象有__hash__方法,__eq__属性,就是可hash的。
    如果两个对象相等,那么它们的散列值一定相等,如果两个散列值相等,那么对象不一定相等,简单的理解方式就是1与6都去模5得到的结果都是1,散列值好比就是1,对象是1,6.这就是散列冲突。Cpython用开放定址法解决这个冲突,开放定址法就是当冲突发生是,散列值在散列表这一个空的散列地址存进去
    字典复制存在一个浅拷贝和深拷贝,浅拷贝只复制一级目录,深拷贝复制所有目录

    a={1:{'a','b'}}
    浅拷贝的情况下,去到键1的值,值是和对象a共享的,操做的时候a里的值也会改变,深拷贝就是将所有的内容都可以复制一边
    b=a.copy()浅拷贝
    form copy import deepcopy深拷贝
    c=deepcopy(a)
  • 相关阅读:
    转:win2000/2003 Discuz生存环境搭建及基础优化
    http://db.grussell.org 测试答案 1
    转:linux系统的主机做代理服务器
    C# code 0002
    Welcome to .NET BY C#
    几篇关于Visual Studio Team Foundation Server (TFS) 安装的文章
    VS2003不知道怎么不能编译C文件
    Kaspersky 更新修复
    入行性能测试两个月
    WMI 注册表 StdRegProv
  • 原文地址:https://www.cnblogs.com/dcotorbool/p/8124847.html
Copyright © 2011-2022 走看看