映射:键值对的关系,键(key)映射值(value)
字典是Python唯一的映射类型
>>> phonebook = {'wakey':'','Ethon':'','joho':''}
>>> phonebook
{'joho': '', 'wakey': '', 'Ethon': ''}
扩展:映射类型与序列类型的区别
1、访问方式不同,序列类型用数字类型的键,而映射类型可以用其他对象类型做键(一般式字符串)
>>> lis = ['a','b','c']
>>> lis[2]
'c'
>>> dic = {'name':'a','father':'b','mother':'c'}
>>> dic['mother']
'c'
2、存储类型不同,映射类型的键,直接或间接地与值相关。
3、序列类型,有序之列,可以通过下标引用元素;映射类型则无序之列,不能通过下标引用元素。
字典:
1、dict 函数
>>> items = [('name','gumby'),('age',42)] # 通过其它映射或键值对建立字典
>>> d = dict(items)
>>> d
{'age': 42, 'name': 'gumby'}
>>>
>>> d = dict(name='Ethon',age=42) # 通过关键字参数建立字典
>>> d
{'age': 42, 'name': 'Ethon'}
2、字典特点:
1)键可以是任何不可变类型(字典最强大的地方)
2)字典中的键可能自动添加
>>> x = {} # 空字典
>>> x[2]='Ethon'
>>> x
{2: 'Ethon'}
3、字典方法
dict.clear() 删除字典中所有元素
>>> x = {'name':'wakey','age':22}
>>> x.clear()
>>> x
{}
dict.copy() 返回一个具有相同键值对的新字典
>>> x = {'name':'wakey','age':22}
>>> y = x.copy()
>>> y['name']='Ethon'
>>> y
{'age': 22, 'name': 'Ethon'}
>>> x
{'age': 22, 'name': 'wakey'}
dict.formkeys() 用给定的键创建新的字典
>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None} # None 作为默认值
dict.get(key,default=None) 返回对应键值
>>> d = {}
>>> print d.get('name')
None # get访问一个不存在的键时,可以得到None值
dict.has_key() 检查键是否存在
>>> d = {}
>>> d.has_key('name')
False
>>> d['name']='Ethon'
>>> d.has_key('name')
True
dict.items() 将所有的字典项以列表的方式返回,项在返回时没有特定的顺序。
>>> d = {'title':'python web site','url':'http://www.python.com'}
>>> d.items()
[('url', 'http://www.python.com'), ('title', 'python web site')]
dict.keys() 键的列表dict.values():值的列表
dict.pop() 获得对应于给定键的值,然后将这个键-值对从字典中移除
>>> d = {'x':1,'y':2}
>>> d.pop('x')
1
>>> d
{'y': 2}
dict.popitem() 弹出列表最后的一个元素(随机弹出),若想一个一个的移除并处理项,这个方法很有用了。
>>> d = {'title':'python','url':'www.python,com'}
>>> d.popitem()
('url', 'www.python,com')
>>> d
{'title': 'python'}
dict.update() 利用一个字典项更新另外一个字典
>>> d = {'title':'python','url':'www.python,com'}
>>> x = {'title':'python language website'}
>>> d.update(x)
>>> d
{'url': 'www.python,com', 'title': 'python language website'}