老男孩python学习自修第四天【字典的使用】
dict = {key1:value1, key2:value2} 定义字典
dict[key] = value 设置字典中指定健的值
dict.pop(key) 删除字典中指定健
dict.popitem() 随机删除字典中的健
dict.clear() 清空元组
dict.update(dict2) 使用另一个字典更新,
dict.setdefault(key, value) 如果该键存在则不设置,如果该键不存在则设置
dict.get(key, default_value) 获取指定健的值,没有则返回默认值
dict[key] 获取指定健的值
dict.haskey(key) 判断是否包含某个健
dict.keys() 返回素有健的列表
dict.values() 返回所有值的列表
dict.items() 返回所有健值对元组的列表
dict.copy() 浅复制
2.字典的循环
此方法对于大字典效率高
for key in dict:
print key, dict[key]
此方法对于大字典效率低,因为需要将字典转化为列表
for key, value in dict.items():
print key, value
3.复制
实战如下:
#!/usr/bin/env python
# _*_ coding:UTF-8 _*_
import copy
dict = {"aaa":"aaa", "bbb":"bbb", "ccc":"ccc"}
dict_shallow = dict.copy()
dict_deep = copy.deepcopy(dict)
print dict, dict_shallow, dict_deep
dict["ddd"] = "ddd"
dict["list"] = [1, 2, 3]
print dict, dict_shallow, dict_deep
结果如下:
liudaoqangdeAir:dict liudaoqiang$ python dict_copy.py
{'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc'} {'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc'} {'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc'}
{'list': [1, 2, 3], 'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc', 'ddd': 'ddd'} {'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc'} {'aaa': 'aaa', 'bbb': 'bbb', 'ccc': 'ccc'}
liudaoqangdeAir:dict liudaoqiang$ more dict_copy.py
字典与列表的比较
dict:
(1)查找和插入的速度比较快,不随key的增加而增加
(2)占用大量的内存
(3)key不可变
(4)默认无序
list:
(1)查找和插入的时间随key的增加而增加
(2)占用内存少
(3)根据下标查找
(4)有序
老男孩python学习自修第四天【字典的使用】的更多相关文章
- 老男孩python学习自修第十四天【序列化和json】
序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ...
- 老男孩python学习自修第二十四天【多进程】
1. 体验多进程的运行速度 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from multiprocessing import Pool import t ...
- 老男孩python学习自修第十九天【异常处理】
1.常见的错误 TypeError 类型错误 NameError 没有该变量 ValueError 不期望的值 AttributeError 没有该属性 UnboundLocalError 没有该局部 ...
- 老男孩python学习自修第八天【函数式编程】
1.可变参数,将传参自动汇总成列表 2.可变参数,将参数自动汇总成字典 实战如下: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ def show(*arg ...
- python学习第十四天字典的del(),pop().popitem(),clear()删除方法
字典的每个键值 key=>value 数据类型,字典的key是唯一的,Value可以一样 names={'玖乐公司网址':‘www.96net.com.cn’,"电池网":' ...
- 老男孩python学习自修第二十三天【多线程】
1. 线程的创建与运行 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from threading import Thread def foo(param1 ...
- 老男孩 python学习自修第二十二天【文件上传与下载】
1.使用socket实现文件上传 server.py #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import os import SocketServe ...
- 老男孩python学习自修第十八天【面向对象】
1.类与对象(构造方法与实例化) #!/usr/bin/env python # _*_ coding:UTF-8 _*_ class Province: def __init__(self, nam ...
- 老男孩python学习自修第十七天【装饰器】
装饰器:在某个方法执行前后去执行其他新定义的行为 例如: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ def before_say_hello(): pr ...
随机推荐
- 转发 .Net平台下ActiveMQ入门实例 https://www.cnblogs.com/madyina/p/4121458.html
1.ActiveMQ简介 先分析这么一个场景:当我们在网站上购物时,必须经过,下订单.发票创建.付款处理.订单履行.航运等.但是,当用户下单后,立即跳转到“感谢那您的订单” 页面.不仅如此,若果没有延 ...
- Qt中使用Boost库
关于boost库的编译,请看https://www.cnblogs.com/HackerArt/p/10539516.html 网上可以查到很多介绍qt使用库文件的教程,但是大多都没有注意到,qt中支 ...
- Recurrent Neural Network[Quasi RNN]
0.背景 RNN模型,特别是包含着门控制的如LSTM等模型,近年来成了深度学习解决序列任务的标准结构.RNN层不但可以解决变长输入的问题,还能通过多层堆叠来增加网络的深度,提升表征能力和提升准确度.然 ...
- C语言的结构和联合,以及PHP是怎么实现弱类型的
C语言的结构(struct):包含多个成员,可能有多种数据类型,并且需要分配几种类型占用空间之和的空间. 联合(union):支持多种类型,供使用者使用其中一种数据类型,当然是需要分配其中占用空间最大 ...
- [翻译] 使用 .NET Core 3.0 创建一个 Windows 服务
原文: .NET Core Workers as Windows Services 在 .NET Core 3.0 中,我们引入了一种名为 Worker Service 的新型应用程序模板.此模板旨在 ...
- mskitten
简介 一个普普通通的Java程序员,在某制造业外企工作. 技术栈 主要是Core Java,准备向Java Web挺进. 非计算机专业学生,在努力提升计算机基本素养(操作系统.算法).有好书好资源欢迎 ...
- kafka环境搭建和使用(python API)
引言 上一篇文章了解了kafka的重要组件zookeeper,用来保存broker.consumer等相关信息,做到平滑扩展.这篇文章就实际操作部署下kafka,用几个简单的例子加深对kafka的理解 ...
- 从 0 到 1 实现 React 系列 —— 3.生命周期和 diff 算法
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- 语法设计——基于LL(1)文法的预测分析表法
实验二.语法设计--基于LL(1)文法的预测分析表法 一.实验目的 通过实验教学,加深学生对所学的关于编译的理论知识的理解,增强学生对所学知识的综合应用能力,并通过实践达到对所学的知识进行验证.通过对 ...
- java中scanner的正确用法
Scanner s = new Scanner(System.in); int choice = 0; if(s.hasNextInt()) { choice = s.nextInt(); } s.c ...