1.字典的定义

  • 字典类似于列表,但相对于列表来说字典更加通用,列表的下标必须必须为整数,而字典下标则可以为任意字符串/数字等,不可以是可变数据类型(列表,数组,元组)
  • 字典包含下标(keys)集合和值(vaule)集合,且keys是唯一的

2.字典的创建

  实例如下:

  

 d1={'name':'alex','age':18,1:''}
d2={}
d2['name']='john'
d2['age']=15
d3=dict(name='lili',age=12)
d4=dict(zip(('name','age'),('tom',20)))
print "d1=",d1
print "d2=",d2
print "d3=",d3
print "d5=",d4

  输入如下

 d1= {1: '', 'age': 18, 'name': 'alex'}
d2= {'age': 15, 'name': 'john'}
d3= {'age': 12, 'name': 'lili'}
d4= {'age': 20, 'name': 'tom'}

3.字典的特性

  • 无序性

    字典最终显示的值是不会按照插入的先后顺序所决定的。因为字典的本质是hash table,而Hash的本质是, 将一数列作为Key尽量平均分配另一个数列Value到程序已经申请好的Array上。

  • 键值唯一性

    字典中的键值是唯一(重复的只会保存一个)

4.字典的基本操作

  • 修改字典
1 #coding=utf-8
2 d1 = {'name':'alex'}
3 print '字典修改前:', d1
4 d1['name']='Bod'
5 print '字典修改后:' ,d1

  实例输出结果:

 字典修改前: {'name': 'alex'}
字典修改后: {'name': 'Bod'}
  • 字典访问
 #coding=utf-8
d1 = {'name':'alex','age':18}
print 'd1["name"]:',d1["name"]
print 'd1["age"]:',d1["age"]

  实例输出结果:

 d1["name"]: alex
d1["age"]: 18

  键值不存在的情况无法通过该方法获取值,会抛出异常

  • 字典删除
 #coding=utf-8

 #删除某个键
d1 = {'name':'alex','age':18}
print '删除前字典内容:',d1
del d1['name']
print '删除后字典内容:',d1 #清空字典
d2={'name':'alex','age':18}
print '清空前字典内容:',d2
d2.clear()
print '清空后字典内容:',d2 #删除字典
d3={'name':'alex','age':18}
print '删除前字典内容:',d3
del d3
#捕获异常
try:
print '删除后字典内容:',d3
except NameError:
print 'd3不存在'

  实例输出结果:

 删除前字典内容: {'age': 18, 'name': 'alex'}
删除后字典内容: {'age': 18}
清空前字典内容: {'age': 18, 'name': 'alex'}
清空后字典内容: {}
删除前字典内容: {'age': 18, 'name': 'alex'}
删除后字典内容: d3不存在

  删除字典指定键值时,需要确保键值存在,否则会抛出异常

 5.字典的内置函数

函数名称 函数作用 函数结果
cmp({"name":"alex"},{"name":"Bob"}) 比较两个字典是否相同 完全相同返回0
len({"name":"alex"}) 计算字典键的个数 1
str({"name":"alex"}) 将字典转为字符串 "{'name': 'alex'}"
type({"name":"alex"}) 输出类型 dict
dict1.clear() 删除字典所有键值  
dict1.copy() 复制字典  
dict.fromkeys(seq,vaule) 创建字典,以seq为key,value为值  
dict1.get(key) 根据key获取vaule,如果可以存在,则获取值,不存在,则返回None  
dict1.has_key(key) 判断key是否存在,存在返回True,不存在Flase  
dict1.items() 以列表返回可遍历的(键, 值) 元组数组  
dict1.keys() 以列表返回所有key  
dict1.setdefault() 和get功能相同  
dict1.values() 以列表返回字典所有值  
dict1.update(dict2) 将dict2添加到dict1中  
dict1.iteritems() 返回一个迭代器  
dict1.pop(key) 与del功能相同  
dict1.popitem() 删除,并有返回值,字典为空时调用该方法抛出异常  

  

  

python 字典详解的更多相关文章

  1. Python字典详解

    转载请注明出处 Python字典(dict)是一个很常用的复合类型,其它常用符合类型有:数组(array).元组(touple)和集合(set).字典是一个key/value的集合,key可以是任意可 ...

  2. Python数据类型详解——字典

    Python数据类型详解--字典 引子 已经学习了列表,现在有个需求--把公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Kwan", ...

  3. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  4. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  5. Python Collections详解

    Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...

  6. 转 python数据类型详解

    python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...

  7. 【python】详解事件驱动event实现

    [python]详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出). 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做 ...

  8. Python闭包详解

    Python闭包详解 1 快速预览 以下是一段简单的闭包代码示例: def foo(): m=3 n=5 def bar(): a=4 return m+n+a return bar >> ...

  9. [转] Python Traceback详解

    追莫名其妙的bugs利器-mark- 转自:https://www.jianshu.com/p/a8cb5375171a   Python Traceback详解   刚接触Python的时候,简单的 ...

随机推荐

  1. 201521123011 《java程序设计》 第7周学习总结

    1. 本周学习总结 参考资料: XMind 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 1.2 解释E remove(int index)源 ...

  2. 201521123098 《Java程序设计》 第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1. 对接口这一定义有了初步的了解: 2. 学习了如何定义实现类和如何实现一些接 ...

  3. 201521123079《java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...

  4. 201521123051《Java程序设计》第十一周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. Java多线程同步的方法: (1)同步方法:即有synchronized关键字修饰的方法. 由于java的每个对象 ...

  5. 分布式一致性算法Raft

    什么是分布式一致性? 我们先来看一个例子: 我们有一个单节点node,这个节点可以是数据库,也可以是一台服务器,当client向node发送data时,X节点收到data,记录下来 由此可见对于单个节 ...

  6. linux crontab设置定期执行脚本

    Linux下crontab命令的用法 任务调度的crond常驻命令crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分锺会定期检查是否 ...

  7. Hibernate映射乱码

    1.修改数据库字符集:将数据库默认编码设置为UTF-8 CHARSET=utf8 2.配置Hibernate环境时将数据库URL设置成: jdbc:mysql://localhost:3306/dbN ...

  8. Hibernate @Embeddable注释

    在hibernate中实现自定义类型,只要实现UserType接口即可或者以Component的形式提供.JPA的@Embedded注释可以在你的Entity中使用一般的Java对象,此对象需要用@E ...

  9. StringBuffer类的构造方法

    public StringBuffer():无参构造方法 public StringBuffer(int capacity):指定容量的字符串缓冲区对象(默认是16个字符) public String ...

  10. windows 结束进程的详细过程

    windows上如何结束进程的详细过程,下面附详细,图文说明 在cmd下,输入  netstat   -ano|findstr  8080      //说明:查看占用8080端口的进程 在cmd下, ...