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学习自修第四天【字典的使用】的更多相关文章

  1. 老男孩python学习自修第十四天【序列化和json】

    序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ...

  2. 老男孩python学习自修第二十四天【多进程】

    1. 体验多进程的运行速度 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from multiprocessing import Pool import t ...

  3. 老男孩python学习自修第十九天【异常处理】

    1.常见的错误 TypeError 类型错误 NameError 没有该变量 ValueError 不期望的值 AttributeError 没有该属性 UnboundLocalError 没有该局部 ...

  4. 老男孩python学习自修第八天【函数式编程】

    1.可变参数,将传参自动汇总成列表 2.可变参数,将参数自动汇总成字典 实战如下: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ def show(*arg ...

  5. python学习第十四天字典的del(),pop().popitem(),clear()删除方法

    字典的每个键值 key=>value 数据类型,字典的key是唯一的,Value可以一样 names={'玖乐公司网址':‘www.96net.com.cn’,"电池网":' ...

  6. 老男孩python学习自修第二十三天【多线程】

    1. 线程的创建与运行 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from threading import Thread def foo(param1 ...

  7. 老男孩 python学习自修第二十二天【文件上传与下载】

    1.使用socket实现文件上传 server.py #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import os import SocketServe ...

  8. 老男孩python学习自修第十八天【面向对象】

    1.类与对象(构造方法与实例化) #!/usr/bin/env python # _*_ coding:UTF-8 _*_ class Province: def __init__(self, nam ...

  9. 老男孩python学习自修第十七天【装饰器】

    装饰器:在某个方法执行前后去执行其他新定义的行为 例如: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ def before_say_hello(): pr ...

随机推荐

  1. (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列

    参考网站 1该mqtt光平台可以让您控制您的MQTT启用灯.它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值. https://www.home-assistant.io/ ...

  2. ROS 小乌龟测试

    教程 1.维基 http://wiki.ros.org/cn/ROS/Tutorials 2. 创客智造 http://www.ncnynl.com/category/ros-junior-tutor ...

  3. 《Web接口开发与自动化测试 -- 基于Python语言》---现已出版。

    终于可以购买了!! 有需要的同学通过下面链接购买. 购买来链接: https://item.jd.com/11806319423.html 为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化 ...

  4. docker容器中安装vi命令

    在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时 ...

  5. c#简单的io

    读取路径判断文件是否存在,进行删除或者创建 简单的io using System; using System.Collections; using System.Collections.Generic ...

  6. AndroidO bluedroid alarm 机制分析

    bluedroid的alarm 机制实现在osi/osi/src/alarm.cc 中: 这里面实现了很多的接口: alarm_t* alarm_new(const char* name): alar ...

  7. 【原创】JAVA8之妙用Optional解决NPE问题

    引言 在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示 在这种情况下,有如下代码 user. ...

  8. .Net Core 在 Linux-Centos上的部署实战教程(二)

    上篇我们说了 如何在Linux上部署.net core  但是有心的同学会发现你关闭掉终端网站就不能访问了,这个原因是因为直接 dotnet GetConfigFile.dll --server.ur ...

  9. 关于eclipse tomcat 无法启动(8080,8005,8009端口被占用)的解决方法,附 eclipse tomcat 与 tomcat 并存方式

    eclipse 在编译运行时 新建的tomcat连接始终为stopped状态,描述为8080,8005,8009端口被占用. 这是因为在装完tomcat后,tomcat服务已启动,而eclipse仅仅 ...

  10. 比较ASP.NET和ASP.NET Core[经典 Asp.Net v和 Asp.Net Core (Asp.Net Core MVC)]

    ASP.NET Core是.与.Net Core FrameWork一起发布的ASP.NET 新版本,最初被称为ASP.NET vNext,有一系列的命名变化,ASP.NET 5.0,ASP.NET ...