老男孩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 ...
随机推荐
- html 传递参数中文乱码 js获取参数乱码
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code HTML传递中文参数时,有乱码导致接收不到正确的数据.JS中可以使用encodeURI ...
- Python 在 Terminal 中的自动补全
为了在 Terminal 中使用 Python 更加方便,在 home 目录下添加脚本 .pythonstartup,内容如下, 然后在 .bashrc 中添加 export PYTHONSTARTU ...
- 高精度除法(b为int类型)
#include<iostream> #include<cstring> #include<cstdio> using namespace std; ],a[],b ...
- a,b,c为3个整型变量,在不引入第四个变量的前提下写一个算法实现 a=b b=c c=a?(异或解决值互换问题)
package com.Summer_0424.cn; /** * @author Summer * a,b,c为3个整型变量,在不引入第四个变量的前提下写一个算法实现 a=b b=c c=a? */ ...
- 操作循环的关键字switch,break,return的应用及区别
break 使用break结束循环 break可以终止循环 和 switch语句的运行; break用于结束一个循环,即跳出循环体,执行循环体之后的代码: switch 使用continue提前结束 ...
- Mac支持ntfs格式的移动硬盘读写操作
转好文:https://blog.csdn.net/u013247765/article/details/77932144 本机环境: macOS Sierra version 10.12.6 201 ...
- Kano模型告诉你“是不是只要企业努力的提高产品或服务质量,顾客满意度就一定会提高吗?”
在 PO在敏捷需求下要遵守哪6条重要原则? 中讲到探索和交付两大阶段的6个原则 其中在原则[做有价值的需求]中讲了两个方法:BSA分析和产品Backlog 其中BSA分析是我在产品规划阶段常使用的 ...
- 给大家推荐8个SpringBoot精选项目
前言 2017年,曾在自己的博客中写下这样一段话:有一种力量无人能抵挡,它永不言败生来倔强.有一种理想照亮了迷茫,在那写满荣耀的地方. 如今2018年已过大半,虽然没有大理想抱负,但是却有自己的小计划 ...
- A2D JS框架 - loadScript实现
其实这个功能比较小,本着自己造轮子的优良传统....就自己造一个好了 <head> <title></title> <script src="A2D ...
- urllib爬虫(流程+案例)
网络爬虫是一种按照一定规则自动抓取万维网信息的程序.在如今网络发展,信息爆炸的时代,信息的处理变得尤为重要.而这之前就需要获取到数据.有关爬虫的概念可以到网上查看详细的说明,今天在这里介绍一下使用ur ...