python基础学习第四章之字典

映射:一种通过名字来引用值的数据结构

字典是python中唯一内建的映射类型,字典中没有特定的顺序,但都存储在一个特定的键(key)下。

键可以使数字、字符串、元组

字典的目的:通过轻松查找某个特定的词语(键),从而找到它的定义(值)

>>> phonebook={'asd':'123','qwe':'456','zxc':'789'}
>>> phonebook['asd']
'123'

 

dict函数对其他映射(比如字典)或者(键、值)对的序列进行建立字典

>>> d=dict(item)
>>> item=[('name','asd'),('age','23')]
>>> d=dict(item)
>>> d
{'age': '23', 'name': 'asd'}
>>> d['name']
'asd'

字典和列表的区别

键可以是任意的不可变类型,字典是无序的

k in d(d为字典)查找的是键,不是值

>>> x=[]
>>> x=[43]='asd'
SyntaxError: can't assign to literal
>>> z={}
>>> z[32]='asd'
>>> z
{32: 'asd'}

 

字典的格式化转化字符串

>>> phonebook={'asd':'123','qwe':'456','zxc':'789'}

>>> "'asd's number is %(asd)s" % phonebook
"'asd's number is 123"

字典的方法

clear 清除字典中的所有项,若字典关联到一个新的字典中去,想要清除原先的字典,必须用clear

>>> z
{32: 'asd'}
>>> z.clear()
>>> z
{}

copy

格式:x=y.copy()
>>> x={'asd':'123','qwe':'456','zxc':['789','098']}
>>> y=x.copy()
>>> y['asd']='345'
>>> y['zxc'].remove('789')
>>> y
{'qwe': '456', 'zxc': ['098'], 'asd': '345'}      ###在副本直接替换值时,原字典不受影响
>>> x
{'qwe': '456', 'zxc': ['098'], 'asd': '123'}     ###如果修改了某个值(原地修改,而不是替换,则会影响原始字典)

要解决这个问题可以用深复制deepcopy

from copy import deepcopy  #引入deepcopy

 

fromkeys:使用给定的键建立新的字典

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

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

get 更宽松访问字典项的方法

>>> d['asd']='123'
>>> d.get('asd')
'123'

没有值时返回None

 

has_key:用于检查字典中是否含有特定的键。d.has_key(k) 相当于k in d

返回的是true或者false

 

items将字典所有项一列表方式返回,iteritems方法的作用和items的相同,但是会返回一个迭代器对象,具体迭代器内容在第九章

>>> phonebook={'asd':'123','qwe':'456','zxc':'789'}
>>> phonebook.items()
[('qwe', '456'), ('zxc', '789'), ('asd', '123')]

>>> phonebook.iteritems()

keys将字典中的键以列表形式返回,而iteritems则返回针对键的迭代器

 

pop可获得对应键的值,并将该键—值在字典中移除

popitem弹出随机的项

setdefault可以获得给定键相关联的值,还可以在字典中不含有给定键的情况下设定相应的键值

update 可以利用一个字典项更新另一个字典(直接插入)

>>> x={'asd':'123','qwe':'456','zxc':'789'}
>>> y={'ald':'173','qie':'426','opc':'736'}
>>> x.update(y)
>>> x
{'zxc': '789', 'asd': '123', 'qie': '426', 'qwe': '456', 'opc': '736', 'ald': '173'}
>>> y
{'qie': '426', 'ald': '173', 'opc': '736'}

 

value 是以列表的形式返回字典中的值,itervalue返回值的迭代器

 

 

 

 

你可能感兴趣的:(python基础学习)