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. 201521123052 《Java程序设计》 第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  2. 201521123104 《Java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1. finally(题目4-2) 1.1 截图你的提交结果(出现学号) 1.2 4-2中f ...

  3. Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了

    Python认为一切皆为对象:比如我们初始化一个list时: li = list('abc') 实际上是实例化了内置模块builtins(python2中为__builtin__模块)中的list类: ...

  4. informix服务端口和oralce服务端口

    查找informix的服务端口1>>more .profile 找到: INFORMIXDIR=/home/informix INFORMIXSERVER=aaaa2>>cd ...

  5. Sping IOC

    这2天学习了Spring的AOP  其中包括注解式和非注解式的配置  个人感觉注解式的配置非常好用.具体内容如下: 1.    AOP 面向切面编程 个人理解就是在一个写好的方法上增加一些新的功能   ...

  6. HTML 4.01+5基礎知識

    HTML 4.01+5 1.Html結構:html>head+body 2.Html快捷鍵:!加Tab(在sublime中) 3.雙標籤: ①常用標籤 h1.h2.h3.h4.h5.h6 p.c ...

  7. Python里Pure paths、PurePosixPath、PureWindowsPath的区别

    Python是跨平台的,可以在不同的操作系统上运行.但是不同系统上路径 的表示方式是不一样的. 例如windows上路径使用“\”分割子目录和父目录,linux上是使用“/”来分割.这就是PurePo ...

  8. Codeforces Round #436 (Div. 2) C. Bus

    http://codeforces.com/contest/864/problem/C 题意: 坐标轴上有x = 0和 x = a两点,汽车从0到a之后掉头返回,从a到0之后又掉头驶向a...从0到a ...

  9. LINUX通过PXE自动部署系统

    原理介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的 ...

  10. 策略模式Strategy

    定义一系列的算法,把他们封装起来,使得算法独立于适用对象. 比如,一个系统有很多的排序算法,但是使用哪个排序算法是客户对象的自有.因此把每一个排序当做一个策略对象,客户调用哪个对象,就使用对应的策略方 ...