<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)'}


4.dict.get(key[,str])---------------用来返回key所对应的项的值,若不存在则返回str,默认返回None

d = {}d['name'] = 'Eric'print d.get('name','N/A')                                        'Eric'


5.dict.has_key(key)-------------------可以检查字典中含有特定的键相当于k in d

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]



1 0
原创粉丝点击