老男孩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 ...
随机推荐
- Linux:Day11(下) ip命令及配置文件方式
配置Linux网络属性:ip命令 ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route } link OBJ ...
- E:dpkg was interrupted, you must manually run'dpkg配置'to correct the problem.
执行sudo apt-get install安装对应的软件出现如下错误 详细错误信息: E: Could not : Resource temporarily unavailable) E: Unab ...
- p1012拼数题解
#include<iostream> #include<algorithm> using namespace std; bool cmp(string b,string a) ...
- 初学Python——RabbitMQ的安装
记录踩坑之路,本篇文章主要摘抄自CSDN博客https://blog.csdn.net/weixin_39735923/article/details/79288578 Windows10环境下安装R ...
- P1337 [JSOI2004]平衡点 / 吊打XXX
题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到 ...
- zabbix API应用
1.模拟登录 curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0",& ...
- Nginx(一)------简介与安装
说到 Nginx ,可能大家最先想到的就是其负载均衡以及反向代理的功能.没错,这也是当前使用 Nginx 最频繁的两个功能,但是 Nginx 可不仅仅只有这两个功能,其作用还是挺大的,本系列博客就来慢 ...
- 【原创】自己动手写一个能操作redis的客户端
引言 redis大家在项目中经常会使用到.官网也提供了多语言的客户端供大家操作redis,如下图所示 但是,大家有思考过,这些语言操作redis背后的原理么?其实,某些大神会说 只要按照redis的协 ...
- javascript状态机及在工作流中的应用
#javascript状态机及在工作流中的应用 ##状态机 什么叫状态机(Finite State Machine),书面上的解释可以自己借助搜索引擎寻找到.通俗地来讲是一个状态定义.查找.切换和事件 ...
- Arduino通过MAX9814实现录音
如果通过Arduino进行录音不是单纯地接一个驻极电容MIC就可以的,因为自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码.即PCM编码.PCM通过抽样.量化.编码三个步骤将连续 ...