Python学习笔记之字典

时间:2021-09-02 01:18:37

一、创建和使用字典

1、创建字典

phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}

 

2、dict,通过映射创建字典

>>> items=[('name','Gumby'),('age',34)]

>>> d=dict(items)

>>> d

显示:{'name':'Gumby','age':'34'}

dict,通过关键字创建字典

>>> d=dict(name='Gumby',age=34)

>>> d

显示:{'name':'Gumby','age':'34'}

 

3、字典格式化字符串

>>> phonebook{'Beth':'9102','Alice':'2334','Cecil','3258'}

>>> "Cecil's phone number is %(Cecil)s." % phonebook

显示:"Cecil's phone number is 3258"

 

4、clear,清除字典中的全部项

5、copy,返回一个具有相同键-值对的新字典,这个方法实现的是浅复制

>>>x={'username':'admin','machines':['foo','bar','baz']}

>>>y=x.copy()

>>>y['username']='mlh'

>>>y['machines'].remove('bar')

>>>y

显示:{'username':'mlh','machines':['foo','baz']}

>>>x

显示:{'username':'admin','machines':['foo','baz']}

注意两个结果的区别:在副本y中替换username的值不会改变x中的值,但是修改副本y中的machines的值,则会改变x中的值

deepcopy,深度复制,可以解决上面的问题

>>> from copy import deepcopy

>>> d={}

>>> d['names']=['Alfred','Bertrand']

>>> c=d.copy()

>>> dc=deepcopy(d)

>>> d['names'].append('Clive')

>>> c

显示:{'names':['Alfred','Bertrand','Clive']}

>>> dc

显示:{'names':['Alfred','Bertrand']}

 

6、fromkeys,使用给定的键建立新的字典

>>> {}.fromkeys(['name','age'])

显示:{'name':None,'age':None}

采用dict的方法创建字典

>>> dict.fromkeys(['name','age'],'(123)') #默认值是可选的

显示:{'name':'123','age':'123'}

 

7、get,用来访问字典项

>>> d={}

>>> print(d['name']) #此时会报错,说name键不存在

>>>print(d.get('name')) #此时不会报错,输出None

>>> print(d.get('name','N/A')) #还可以指定默认值

 

8、has_key,检查字典中是否含有指定的键,在V2.6之后,V3.0之前有用,

>>> d={}

>>> d.has_key('name')

显示: False

从V3.0开始,采用in的方式判断

>>> 'name' in d

显示:False

 

9、items,返回一个迭代器对象

>>> d={'title':'Python Web Site','url':'http://www.python.org','spam':0}

>>> d.items()

显示:dict_items([('url','http://www.python.org'),('title','Python Web Site'),('spam',0)])

 

10、pop,将指定的键-值对从字典中删除

>>> d={'x':1,'y':2}

>>> d.pop('x')

显示:1

>>> d

显示:{'y':2}

 

11、popitem,弹出随机项

12、setdefault,在某种程度上类似于get,并且还能在字典中不含有给定键的情况下设定相应的键值

>>> d={}

>>> d.setdefault('name','N/A')

显示:'N/A'

>>> d

显示:{'name','N/A'}

>>> d['name']='Gumby'

>>> d.setdefault('name','N/A')

显示:'Gumby'

>>> d

显示:{'name':'Gumby'}

 

13、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)

>>> d

显示:

{

  'title':'Python Language Website',

  'url':'http://www.python.org',

  'changed':'Mar 14 22:09:15 MET 2008'

}

 

14、Values,返回值的迭代器

>>> d={}

>>> d[1]=1

>>> d[2]=2

>>> d[3]=3

>>> d[4]=1

>>> d.values()

显示:dict_values([1,2,3,1])