字典
字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含: “键
对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值
对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、
字典、集合这些可变对象,不能作为“键”。并且“键”不可重复。
“值”可以是任意的数据,并且可重复。
一个典型的字典的定义方式:
a = {'name':'gaoqi','age':18,'job':'programmer'}
字典的创建
1. 我们可以通过{}、dict()来创建字典对象。
>>> a={"name":"linyi","age":26,"aa":[10,20,30]}
>>> a
{'name': 'linyi', 'age': 26, 'aa': [10, 20, 30]}
>>> b=dict(name="linyi",age=18)
>>> b
{'name': 'linyi', 'age': 18}
2. 通过 zip()创建字典对象
>>> k = ['name','age','job']
>>> z = ['1','2','2']
>>> d = dict(zip(k,z))
>>> d
{'name': '1', 'age': '2', 'job': '2'}
3. 通过 fromkeys 创建值为空的字典
>>> a=dict.fromkeys(["name","age"])
>>> a
{'name': None, 'age': None}
字典元素的访问
1. 通过 [键] 获得“值”。若键不存在,则抛出异常。
>>> a = {'name':'gaoqi','age':18,'job':'programmer'}
>>> a['age']
18
2. 通过 get()方法获得“值”。推荐使用。优点是:指定键不存在,返回 None;也可以设
定指定键不存在时默认返回的对象。推荐使用 get()获取“值对象”。
>>> a.get('age')
18
>>> a.get('666')
>>> a.get('aaa')
>>> a.get('sex','u')
'u'
3. 列出所有的键值对
>>> a.items()
dict_items([('name', 'gaoqi'), ('age', 18), ('job', 'programmer')])
4. 列出所有的键,列出所有的值
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['gaoqi', 18, 'programmer'])
5. len() 键值对的个数
6. 检测一个“键”是否在字典中
>>> a = {"name":"gaoqi","age":18}
>>> "name" in a
True
字典元素添加、修改、删除
1. 给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,
则新增“键值对”。
>>> a['id']='哥'
>>> a
{'name': 'gaoqi', 'age': 18, 'job': 'programmer', 'id': '哥'}
>>> a['age']=66
>>> a
{'name': 'gaoqi', 'age': 66, 'job': 'programmer', 'id': '哥'}
2. 使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,则直
接覆盖。
>>> b = {'name':'gaoxixi','money':1000,'sex':'男的'}
>>> a.update(b)
>>> a
{'name': 'gaoxixi', 'age': 66, 'job': 'programmer', 'id': '哥', 'money': 1000, 'sex': '男的'}
3. 字典中元素的删除,可以使用 del