<Python基础教程>_第四章_总结
来源:互联网 发布:酱紫的网络语言意思 编辑:程序博客网 时间:2024/05/16 15:22
映射(mapping)---一种通过名字来引用值的数据结构。
字典是ython唯一内建的映射类型。
dict---创建字典的方法 输出
方法一
items = [('name','Gumby'),('age','42')]d = dict(items)print d {'age':'42','name':'gumby'}print d['name'] Gumby
方法二
通过关键字创建字典
d = dict(name = 'Gumby',age = '42')print d {'age':'42','name':'gumby'}print d['name'] Gumby
字典的基本操作
1.len(d) 返回d中项(键-值对)的数量
2.d[k] 返回关联到键k上的值
3.d[k]=v 将值v关联到键k上
4.del d[k] 删除键为k的项
5.k in d 检查d中是否有含有键为k的项
字典与列表的区别:
键类型:字典的键不一定为整形数据(但也可以是),键可以是任意的不可变类型,比如浮点型(实型),字符串
或者元组。
自动添加:即使键起初在字典中并不存在,也可以为它赋值,这样字典就会建立新的项。而list不能直接关联到列表范围之外的索引上。
成员资格:表达式k in d(d为字典)查找的是键,而不是值。表达式v in l(l为列表)则用来查找值,而不是索引。
字典格式化字符串
使用字典格式化字符串(只以字符串作为键的)而不是元组
phonebook = {'Beth':'9102','Alice':'2341','Cecil','3258'}print "Cecil's phone number is %(Cecil)s." % phonebook Cecil's phone number is 3258
字典方法
1.dict.clear()方法------用来清除字典中所有的项。这个是原地操作(类似于list.sort),没有返回值(返回值为None)
d = {}d['name'] = 'Gumby'd['age'] = 42d.clear()print d {}注意:dict中x=y为浅复制,x.clear()会清空x与y共同所指向的原始字典
2.dict.copy()----copy方法用来返回一个具有相同键-值对的新字典(这个方法使用的是浅复制)
x = {'username':'admin','machines':''foo','bar','baz']}y = x.copy()y['username'] = 'mlh'y['machines'].remove('bar')print y {'username':'mlh','machines':['foo','baz']}print x {'username':'admin','machines':['foo','baz']}在副本中替换值的时候,原始字典不受到影响,但是,若修改了某个值(原地修改而不是替换),原始字典也会受到影响,可以使用深复制解决此问题
深复制(deep copy),复制其包含的所有值。copy中的deepcopy可以解决这个问题。
示例
from copy import deepcopyd = {}d['names'] = ['Alfred','Bertrand']c = d.copy()dc = deepcopy(d)d['names'].append('Clive')print c {'names':['Alfred','Bertrand','Clive']}
print dc {'names':['Alfred','Bertrand']}
3.dict.fromkeys(sequence[,str])---------使用给定的方法建立新的字典,每个键对应一个默认的值None
print dict.fromkeys(['name','age']) {'age':None,'name':'None'}print dict.fromkeys(['name','key'],'(unknown)') {'age':'(unknown)','name':'(unknown)'}
d = {}d['name'] = 'Eric'print d.get('name','N/A') 'Eric'
d = {}d.has_key('name') Falsed['name'] = 'Eric'd.has_key('name') True
6.item和iteritem-----------------item方法将字典所有的项以列表的形式返回,列表中的每一项都为(键,值)对的形状。但是项在返回时并没有遵循特定的次序。
d = {'title':‘Python Web Site’,'url':'Http://python.org','spam':0}print d.item() [('title',‘Python Web Site’),('url','Http://python.org'),('spam',0)]
it = d.iteritem()print it [('title',‘Python Web Site’),('url','Http://python.org'),('spam',0)]
7.dict.keys()和dict.iterkeys()----------------keys将字典中的键以列表的形式返回,dict.iterkeys()返回针对键的迭代器
8.dict.pop(key)------------------------pop方法用来获得对应给定键的值,然后将这个键-值从字典中移除
d = {'x':1,'y':2}print d.pop('x') 1print d {'y':2}
9.dict.popitem()-------------------popitem弹出字典中随机的项,返回的数据以元组形式返回
d = {'url':'http://www.python.org','spam':0,'title':'Python Web Site'}print d.popitem() ('url','http://www.python.org')print d {'spam':0,'title':'Python Web Site'}
10.dict.setdefault(key,str)-----------------------setdefault方法某种程度上类似于get方法,setdefault还能在字典中不含有给定键的情况下设定相应的键值,如果不设定,会默认使用None
当键不存在的时候,setdefault返回默认值并相应的更新字典。如果键存在,那么就返回与其对应的值,但不改变字典。
d = {}d.setdefault('name','N/A')print d {'name':'N/A'}d['name'] = 'Gumby'print d.setdefault('name','N/A') 'Gumby'print d {'name':'Gumby'}
11.dict.update(dict)
update方法可以利用一个字典更新另外一个字典
d = { 'title':'Python Web Site' 'url':'http://www.python.org’ 'changed':'Mar 14 22:09:15 MET 2008'}x = {'title':'Python Language Website'}d.update(x)print d {'url':'http://www.python.org','changed':'Mar 14 22:09:15 MET 2008','title':'Python language Website'}
12.dict.keys()和dict.iterkeys()以列表的形式返回字典中的值(itervalues返回值的迭代器),与返回键的列表不同的是,返回值的列表中可以包含重复的元素
d = {}d[1] = 1d[2] = 2d[3] = 3d[4] = 1print d.values() [1,2,3,1]
- <Python基础教程>_第四章_总结
- <Python基础教程>_第五章_总结
- <Python基础教程>学习心得_第二章
- <Python基础教程>第三章_学习心得
- <Python基础教程>学习心得_第一章
- python基础教程_学习笔记8:序列_练习与总结_1
- python基础教程_学习笔记3:列表
- python基础教程_学习笔记5:字符串
- python基础教程_学习笔记6:字典
- python基础教程_学习笔记9:抽象
- python基础教程_学习笔记10:异常
- Opencv3 Python基础教程2_视频
- python基础_总结
- Python基础教程(第四章)
- Python基础教程(第四章)
- Python基础教程 | 第四章 字典
- 操作系统_第四章_虚拟存储器
- HeadFirst设计模式总结_第四章工厂模式
- DirectX实现光照、纹理
- ubuntu安装flashplayer
- linux上从文件的最后向前查看
- JVM如何理解Java泛型类(转)
- MVC北京络捷斯特第三方物流系统技术解析(五)库内加工
- <Python基础教程>_第四章_总结
- Android开发中的MVC设计模式
- 对select表单控件进行美化
- Duang~ Android堆栈慘遭毁容?精神哥揭露毁容真相!
- centos安装Python2.7记录
- KEIL RTX_Kernel使用小结
- Thread Safety of shared_ptr
- Magento不启用URL重写,网址加上index.php的设置
- 会员卡管理系统技术解析(八)会员卡建卡记录添加