python数据结构之字典

除开列表,字典是python中又一灵活的数据结构。二者的主要差别在于:列表是有序的对象集合,字典是无序的对象集合。且列表是按照偏移存取数据的,而字典是按照键存取数据的。


字典的创建

dict函数

>>> d=dict([('name','小明'),('sex','男')])
>>> d
{'name': '小明', 'sex': '男'}

>>> d=dict(name='小红',sex='女')
>>> d
{'name': '小红', 'sex': '女'}

直接赋值

>>> d={'name':'小刚','sex':'男'}
>>> d
{'name': '小刚', 'sex': '男'}

字典就是以一对对键值对显示的,其中,冒号左边的是键(key),冒号右边的是值(value),元素之间以逗号隔开。字典的值是唯一的,但值不是。

字典不是序列,它是映射关系对象的集合。但是它在操作上与其他序列有类似的地方。

通过键存取值

>>> d=dict(name='小明',sex='男')
>>> d
{'name': '小明', 'sex': '男'}
>>> d['age']=12
>>> d
{'name': '小明', 'sex': '男', 'age': 12}
>>> d['name']
'小明'

查看元素的长度(数量)

>>> len(d)
3


字典方法

1、clear清空字典中所有的键值对

>>> d=dict(name='小明',sex='男')
>>> d
{'name': '小明', 'sex': '男'}
>>> d.clear()
>>> d
{}

2.copy复制一个相同的字典副本

>>> d1=dict(name='小明',sex='男')
>>> d2=d1.copy()
>>> d1
{'name': '小明', 'sex': '男'}
>>> d2
{'name': '小明', 'sex': '男'}

3.get获取键对应的值,如果没有则返回None

>>> d.get('name')
'小明'
>>> print(d.get('age'))
None

4.items返回字典所有的键值对

>>> d={'name': '小明', 'sex': '男', 'age': 12}
>>> d.items()
dict_items([('name', '小明'), ('sex', '男'), ('age', 12)])

5.keys方法返回字典所有的键,values返回字典所有的值

>>> d.keys()
dict_keys(['name', 'sex', 'age'])
>>> d.values()
dict_values(['小明', '男', 12])

8.pop删除指定键值对,并返回它的值

>>> d={'name': '小明', 'sex': '男', 'age': 12}
>>> d.pop('age')
9.popitem随机删除一对键值对,并返回它。

>>> d={'name': '小明', 'sex': '男', 'age': 12}
>>> d.popitem()
('age', 12)
>>> d
{'name': '小明', 'sex': '男'}
>>> d.popitem()
('sex', '男')
>>> d
{'name': '小明'}
>>>

10.update根据另一字典的内容更新字典

>>> d1={'name': '小明', 'sex': '男', 'age': 12}
>>> d2={'name': '小红', 'sex': '女'}
>>> d1.update(d2)
>>> d1
{'name': '小红', 'sex': '女', 'age': 12}

字典推导


从python2.7开始,列表推导和生成器表达式的概念就应用到了字典上,于是就有了字典推导。字典推导能从以键值对作为元素的可迭代对象中构建出字典。如:

>>> animals_list=[('cat','猫'),('dog','狗'),('pig','猪'),('tiger','虎'),('wolf','狼')]
>>> animals_dict={e_name:c_name for e_name,c_name in animals_list}
>>> animals_dict
{'cat': '猫', 'dog': '狗', 'pig': '猪', 'tiger': '虎', 'wolf': '狼'}




你可能感兴趣的:(Python)