1. 深入dict

from collections.abc import Mapping,MutableMapping
# dict 属于mapping类型a = {}
print(isinstance(a,MutableMapping))

2.常用方法:

a = {"bobby1":{"company":"imooc"},"bobby2:":{"company":"imooc"}}# clear
# a.clear()#copy,返回浅拷贝
# new_dict = a.copy()
# new_dict["bobby1"]["company"] = "imooc3"# 深拷贝
# import copy
# new_dict = copy.deepcopy(a)
# new_dict["bobby1"]["company"] = "imooc3"# fromkeys
new_list = ["bobby1","bobby2"]
new_dict = dict.fromkeys(new_list,{"company":"imooc"})# get
# value = new_dict.get("bobby",{})
# print(value)#items
# for key,value in new_dict.items():
#     print(key,value)# setdefault
# 他对去调用D.get(k,d)同时D[k] 设置
default_value = new_dict.setdefault("bobby","imooc")
print(new_dict)# update:
new_dict.update(bobby="imooc")
new_dict.update([("bobby","imooc")])
new_dict.update((("bobby","imooc"),))

3. dict的子类

# 不建议继承list和dict
class Mydict(dict):def __setitem__(self,key,value):super().__setitem__(key,value*2)my_dict = Mydict(one=1)
my_dict["one"] = 1
print(my_dict)

# 建议用UserDict
from collections import UserDictclass Mydict(UserDict):def __setitem__(self,key,value):super().__setitem__(key,value*2)my_dict = Mydict(one=1)
print(my_dict)

from collections import defaultdictclass Mydict(UserDict):def __setitem__(self,key,value):super().__setitem__(key,value*2)my_dict = Mydict(one=1)
print(my_dict)my_dict = defaultdict(dict)
my_value = my_dict["bobby"]# __missing__方法,如果找不到某个key,那么实现一个keyvalue

  记住:其实setdefault里面实现了__missing__魔法函数,表示如果是找不到某个key,那么实现一个默认的keyvalue

3. set和frozenset

# set   集合  frozenset   不可变集合   无序  不重复
s = set('abcde')
s = set(['a','b','c'])
print(s)# 初始化方法
s = {'a','b'}
print(type(s))s2 = frozenset('abcde') # 不可变的类型,可以作为dict的key
print(s2)

  记住:和数学的操作一样,差集,交集,并集等。。

  记住:在去重上应用很高,性能很高。

  记住:还可以用:

for "c" in set:print ("i am in set")

  记住:这里就实现了__contain__方法

  记住:还有实现了__issubset__方法

4. dict和set他们背后实现的原理:

  1. dict的key或者set的值都是必须可以hash的,不可变对象都是可以hash的,str,fronzenset,tuple,自己实现的类的__hash__

  2. dict的内存花销大,但是查询速度快,自定义的对象或者Python内部的对象都使用dict包装的。

  3.dict的存储顺序和元素添加顺序有关。

  4.添加数据有可能改变已有数据的顺序。

  5.list和array是一种自增的方式,随着数据在增加,申请内存空间的动作不断操作。

  6.dict只有在内存空间少于1/3的时候才会去申请内存空间。

转载于:https://www.cnblogs.com/noah0532/p/10989826.html

Python说文解字_杂谈07相关推荐

  1. Python说文解字_杂谈06

    1. 序列类型的分类: 容器类型:list.tuple,deque 扁平序列:str.bytes.bytearray.array.array 可变序列:list.dequte.bytearray.ar ...

  2. 全字库说文解字字体_整理了10款免费商用中文字体,超好用

    文章来源:logo设计视觉(ID:logoshijue) 字体不能随便用!大家应该经常有听到字体侵权索赔上几十上百万事吧!作为小小的设计师遇上了就倒霉啦!所以,我们要有足够版权意识,没事囤点免费可商用 ...

  3. 全字库说文解字字体_【180期】可商用字体大全,无版权纠纷!

    大家好我是万能的向前 今天向前为你精选了 可商用字体最全收集免费,无版权纠纷 每个设计高手都离不开百变的字体,但是,如果审美不到位字库不全,找不到合适的字体,领导.客户就相不中!那就有可能被降薪,糟心 ...

  4. java 词根_英语词根与单词的说文解字---词根示例1、第10页 st(at)

    英语词根与单词的说文解字---词根示例1.第10页 st(at) 一.总结 一句话总结: 站 state,establish,constitution 英 [ɪ'stæblɪʃ; e-]  美 [ɪˈ ...

  5. 说文解字 —— 拆字

    1. 说文解字 美: 羊大为美:所以有肥美嘛 2. 世说新语 皇: 王上加白: 工人: 工人就是天: 3. 复杂词语 三星期,六点钟:三星期为二十一,六点钟为酉时的酉:加在一起就是醋: 4. 数字 7 ...

  6. 嘻嘻哈哈说文解字(讲)

    讲的左边是言,右边是井,我想,老祖宗造这个字的意思应该是:话是应该说,但不能说多,不能井边说,言空了就掉井里了(所谓言虚容易掉到井里面).但奈何我们的记忆总不好,只记住了左边的言,这不,你看我们天天都 ...

  7. 读书笔记(四)---读《说文解字》的快乐点滴

    想读这本书的缘由在于,我经常背英语单词:为了更牢靠的记住英语单词,使用了某些例如按词根记住单词的技巧,突然想到自己对汉字也有很多是不认识的,学习一门外语花了这么大力气,为何学习母语反而不下工夫呢?于是 ...

  8. 曲刚英语说文解字全套下载

    买了曲刚英语说文解字全套已经学完了,因为都是电子录像,所以想转让一下,有兴趣的可以联系我,已经解决其他机器上无法播放的问题? 联系方式q.q:375501819 下载地址可以联系我~

  9. 快步英语说文解字颠覆中国传统英语教学模式

    原文出处 http://tinyurl.com/43637676 快步7号说文解字里面内容到底教了那些呢 中国近百年来沉闷压抑僵死的英语教学困境终于迎来颠覆性.震撼性突破,横空出世的曲刚英语语音大表. ...

  10. 《说文解字》与程序设计

    说文解字 领券网 https://www.cps3.cn/ <说文解字>,简称<说文>,是由东汉经学家.文字学家许慎编著的语文工具书著作.<说文解字>是中国最早的系 ...

最新文章

  1. Oracle二三事之 12c 可插拔数据库PDB
  2. 10 i lt shell的if_shell脚本编程之if、case条件语句
  3. etl常用的三种工具介绍_Adobe Photoshop常用修图插件+屏幕模式+内容感知移动工具介绍...
  4. Buuctf(pwn) ez_pz_hackover_2016 泄露栈地址,retshellcode;调试计算
  5. 《游戏设计师修炼之道:数据驱动的游戏设计》一3.8小结
  6. Mybatis结合Oracle的foreach insert批量插入报错!
  7. Spring Boot 集成 Quartz
  8. github (远端建立分支....配置见github 官网配置)
  9. 关于NSOperation的几个常见问题
  10. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系
  11. 如何利用大数据进行价值兑现才是正经事
  12. JavaScript之爆肝汇总【万字长文❤值得收藏】
  13. 不小心删除电脑系统所有字体的解决方法
  14. 基于哈夫曼编码的文件压缩解压
  15. 微信扫描小程序码登录 PC 网站 Demo
  16. 职称体系岗位等级对照
  17. SQL_数据库表的操作
  18. 东软Unieap平台
  19. idea 使用debug模式自动编译的设置
  20. 数加平台——阿里大数据OS实践

热门文章

  1. java 单体 启动优化_java设计优化之单例模式
  2. python 客户端_Python客户端
  3. php 如何下载,php的包怎么下载
  4. his提供哪些服务_品牌战略咨询能为企业提供哪些服务
  5. 湘潭比赛有感---铩羽之行
  6. cmd链接php mysql数据库_php连接mysql数据库_cmd连接mysql数据库 - MySQL最新手册教程 - php中文网手册...
  7. 【CF585-div2:C】Swap Letters(贪心)
  8. 【UVA213】Message Decoding(读入技巧+二进制十进制转换)
  9. hdu 5446 Lucas+中国剩余定理(孙子定理)+按位乘
  10. 解决requests.text乱码问题content.decode()