字典
字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些可变对象,不能作为“键”。并且“键”不可重复
一个典型的字典的定义形式:(三个“键值对”name是键,zhangsan是值)
a={‘name’:’zhangsan,’age’:18,’job’:’programmer’}
>>>a.get(‘name’)
zhangsan
字典的创建
1.我们可以通过()、dict()来创建字典对象
>>>a={'name':'zhangsan','age':18,'job':'programmer'}
>>>a
{'name': 'zhangsan', 'age': 18, 'job': 'programmer'}
>>>b = dict(name='zhangsan',age=18)
>>>b
{'name': 'zhangsan', 'age': 18}
>>>c=dict([('name','zhangsan'),('age',18)])
>>>c
{'name': 'zhangsan', 'age': 18}
>>>c={} #空的字典对象
>>>d=dict() #空的字典对象
2.通过zip()创建字典对象
>>>k=['name','age','job'] #键对象集合
>>>v=['gaoqi',18,'teacher'] #值对象集合
>>>d=dict(zip(k,v))
>>>d
{'name': 'gaoqi', 'age': 18, 'job': 'teacher'}
3.通过fromkeys创建值为空的字典 #none表示值为空
>>>a=dict.fromkeys(['name','age','job'])
>>>a
{'name': None, 'age': None, 'job': None}
字典元素的访问
为了测试各种访问方法,这里设定一个字典对象:
a={‘name’:’zhangsan’,’age’:18,’job’:’programmer’}
1.通过[键]获得“值”。若键不存在,则抛出异常
>>>a={'name':'zhangsan','age':18,'job':'programmer'}
>>>a['name']
'zhangsan'
>>>a['age']
18
>>>a['sex']
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
a['sex']
KeyError: 'sex'
2.通过get()方法获得“值”。推荐使用。优点是:指定键不存在,返回None;也可以指定键不存在时默认返回的对象。推荐使用get()获取“值对象”
>>>a.get('name')
'zhangsan'
>>>a.get('ddd')
>>>a
{'name': 'zhangsan', 'age': 18, 'job': 'programmer'}
>>>print(a.get('dddd'))
None
>>>a.get('ddd','不存在')
'不存在'
3.列出所有的键值对
>>>a.items()
>>>dict_items([('name', 'zhangsan'), ('age', 18), ('job', 'programmer')])
4.列出所有的键,列出所有的值
>>>a.keys()
dict_keys(['name', 'age', 'job'])
>>>a.values()
dict_values(['zhangsan', 18, 'programmer'])
5.len()键值对的个数
>>>a={'name':'zhangsan','age':18}
>>>len(a)
2
6.检测一个“键”是否在字典中
>>>a={'name':'zhangsan','age':18}
>>>'name'in a
True
字典元素添加、修改、删除
1.给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值;如果“键”不存在,则新增“键值对”
>>>a={'name':'zhangsan','age':18,'job':'programmer'}
>>>a['address']='西三旗1号院'
>>>a['age']=16
>>>a
{'name': 'zhangsan', 'age': 16, 'job': 'programmer', 'address': '西三旗1号院'}
2.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖
>>>a={'name':'zhangsan','age':18,'job':'programmer'}
>>>b={'name':'wangwu','