码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习总结之四 -- 这就是Python的字典

时间:2015-05-21 06:33:54      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

字典原来是这么回事儿

Python学习到现在,我们已经知道,如果想将值分组到结构中,并且通过编号对其进行引用,列表就可以派上用场。不过,今天,我们将学到一种通过名字引用值的数据结构,应该知道这种数据类型叫做映射。字典则是Python中唯一内建的映射类型,那么我们就来学习字典。

认识字典

字典是可变的,并且可以存储任意数量的Python对象。下面这个例子就是简单的字典类型:

1 phonebook={zhangsan:12345,lisi:54321}
2 print phonebook

 

 

字典由多个键及与其对应的值构成的对组成(我们也把键/值对称为项)。字典中包括很多键,每一个键对应一个值。键在字典中是唯一的,但是值不是唯一的。在上例中,名字是键,电话号码是值。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典用大括号括起来。空字典(不包含任何项)由两个大括号组成,像这样:{}。

dict函数:我们可以调用dict函数对其他映射(比如其他字典)或者(键,值)这样的序列或者关键字参数来创建字典。

1 item=[(name,BaiYiShaoNian),(age,23)]
2 d=dict(item)
3 print d

 

技术分享

基本操作

len(d) : 返回字典d中项(键-值对)的数量

d[k] : 返回字典d中键k对应的值

d[k]=v :将值v关联到字典d的键k上

del d[k] :删除键k的项

k in d : 检查键k是否存在于字典d中

 

1 d={name:BaiYiShaoNian,age:23,from:ChongQing,nowAdd:Jilin}
2 print len(d)
3 print d[name]
4 d[name]=huangSir
5 print d
6 del d[age]
7 print d
8 print from in d 
9 print age in d 

 

技术分享

 

小结:在字典中检查键的成员资格比在列表中检查值的成员资格更加高效,数据规模越大,两者的查询效率差别就越大。

字典格式化字符串:我在字符串一篇中有讲到字符串的格式化方法,这里,又出现字典格式化字符串了。想想有什么相同之处和不同之处呢,你是不是应该试着思考一下?(提示:字典是以映射的方式存在的)

1 d={name:BaiYiShaoNian,age:23,from:ChongQing}
2 print introduce yourself
3 print My name is %(name)s , I\‘m %(age)s years old , I\‘m from %(from)s . % d 

 

技术分享

字典方法

clear:清除字典中所有的项,无返回值。(通过下面两个例子感受clear方法的特点在哪里)

技术分享

 

技术分享

copy:返回一个具有相同键-值对的新字典(浅复制)

deepcopy:深复制

 

 1 d={zhangsan:[789,123],lisi:12313}
 2 d2=d.copy()
 3 d[zhangsan].append(999)
 4 print d
 5 print d2
 6 
 7 from copy import deepcopy
 8 d={zhangsan:[789,123],lisi:12313}
 9 d3=deepcopy(d)
10 d[zhangsan].append(999)
11 print d
12 print d3

 

技术分享

 

fromkeys:使用给定的键建立新的字典,每个键默认对应的值为None。

get:一个更宽松的访问字典的方法。

一般来说,如果正常访问字典中不存在的键的话会出错,那么使用get方法就不会报错,它返回的是None。

has_key:检查字典中是否含有给出的键。表达式d.has_key(k)相当于k in d。

itemsiteritems:items将字典项以列表的形式返回,iteritems和items作用相同,但是它返回的是一个迭代器对象而不是列表。

keysiterkeys:keys方法将字典中的键以列表形式返回,iterkeys方法将字典中的值以列表返回

pop:获得对应于给定键的值,并将这个键-值对从字典中移除

valuesitervalues:和keys、iterkeys相对应,values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)

 

总结:目前为止,我们已经学习到了Python中字符串、元组、列表、字典的基本知识了,接下来应该怎么学呢?if 和 while语句吗?我觉得这些循环语句可以在今后的Python例子中自然的就学到了。所以,接下来,我决定继续学习Python的高级编程和爬虫的知识了。

加油!BaiYiShaoNian。

Python学习总结之四 -- 这就是Python的字典

标签:

原文地址:http://www.cnblogs.com/BaiYiShaoNian/p/4518654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!