码迷,mamicode.com
首页 > 编程语言 > 详细

python字典的一些深入体会

时间:2017-12-27 14:03:53      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:imp   import   last   gen   span   auto   item   put   返回   

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)

python字典的一些深入体会

标签:imp   import   last   gen   span   auto   item   put   返回   

原文地址:https://www.cnblogs.com/dcotorbool/p/8124847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!