字典
- 1.什么是字典对象
- 2. 创建字典对象
- 3.获取dict里面的内容
- 3.1 通过[key]的方式
- 3.2 通过get()函数(推荐)
- 4. 元素的添加,修改,删除
- 4.1 添加
- 4.2 修改
- 4.3 update(更新)
- 4.4 删除元素
- popitem()函数
- 5. 序列解包
1.什么是字典对象
- 字典是另一种可变容器模型,且可存储任意类型对象。
- 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
- 键的类型必须相同,如字符串,int等类型
- 值的类型可以不唯一
2. 创建字典对象
# coding=utf-8
## 字典类型的创建
## 使用花括号来创建
dict01={'name':'张三','age':18,'score':98.5}
print(dict01)
## 通过函数dict来创建
## dict使用list,元组的方式来创建
dict02=dict([('name','张三'),('age',18),('score',99.8)])
print(dict02)
## 通过fromkey函数来创建只有key的dict对象
dict03=dict.fromkeys(['name','age','score'])
print(dict03)
结果
{'name': '张三', 'age': 18, 'score': 98.5}
{'name': '张三', 'age': 18, 'score': 99.8}
{'name': None, 'age': None, 'score': None}
3.获取dict里面的内容
3.1 通过[key]的方式
dictObject={'name':'张三','age':19,'score':99.6}
print(dictObject['name']) # 结果为张三
print(dictObject['sex']) # 没有sex这个键,抛出异常
这种方式获取值,如果当前这个key不存在,则直接报异常
3.2 通过get()函数(推荐)
使用get函数获取,如果不存在当前key,只会返回None值,不会抛异常,或者我们可以设置默认值返回
## 通过get()函数获取
dictObject={'name':'张三','age':19,'score':99.6}
print(dictObject.get('name')) # 结果为“张三”
# 设置默认值,如果没有则返回默认值
print(dictObject.get('sex','null'))
4. 元素的添加,修改,删除
4.1 添加
如果添加的元素,键的名称与字典里某个元素的键名相同,则会覆盖之前的键值对
>>> a={"name":"张三",'age':18,'score':99.9}
>>> a['sex']='男'
>>> a
{'name': '张三', 'age': 18, 'score': 99.9, 'sex': '男'}
4.2 修改
直接覆盖旧元素即可
>>> a={"name":"张三",'age':18,'score':99.9}
>>> a['name']='李四'
>>> a
{'name': '李四', 'age': 18, 'score': 99.9}
>>>
4.3 update(更新)
字典对象提供了一种update方法,可以接受字典类型,来更新当前字典对象
相同的元素直接覆盖,新元素则直接添加
>>> b={'name':'张三','sex':'男'}
>>> a={'score':99,'name':'李四'}
>>> a.update(b)
>>> a
{'score': 99, 'name': '张三', 'sex': '男'}
>>>
4.4 删除元素
删除指定元素
pop函数会删除指定键所代表的的键值对,并且会返回值的内容
>>> a={'name':'张三','age':18,'sex':'男'}
>>> a
{'name': '张三', 'age': 18, 'sex': '男'}
>>> a.pop('name')
'张三'
>>> a
{'age': 18, 'sex': '男'}
删除所有元素
clear函数会删除字典里所有的对象
>>> a={"name":"张三",'age':18,'score':99.9}
>>> a
{'name': '张三', 'age': 18, 'score': 99.9}
>>> a.clear()
>>> a
{}
>>>
popitem()函数
随机删除一个字典里面的键值对,并且返回该键值对
因为字典不同于集合,字典是无序的没有第一个元素,在无序的删除字典元素时使用
>>> a={"name":"张三",'age':18,'score':99.9}
>>> a
{'name': '张三', 'age': 18, 'score': 99.9}
>>> a.popitem()
('score', 99.9)
>>> a
{'name': '张三', 'age': 18}
>>> a.popitem()
('age', 18)
>>> a
{'name': '张三'}
>>>
5. 序列解包
dict01={
'name':'Daiv',
'age':18,
'sex':'男',
'score':99.8
}
# 默认以解包的方式获取所有的键
a,b,c,d=dict01
print(a,end='\t')
print(b,end='\t')
print(c,end='\t')
print(d,end='\t')
print()
# 获取键
a,b,c,d=dict01.keys()
print(a,end='\t')
print(b,end='\t')
print(c,end='\t')
print(d,end='\t')
print()
# 获取值
a,b,c,d=dict01.values()
print(a,end='\t')
print(b,end='\t')
print(c,end='\t')
print(d,end='\t')
print()
# 获取键值对对象
a,b,c,d=dict01.items()
print(a,end='\t')
print(b,end='\t')
print(c,end='\t')
print(d,end='\t')
print()
结果
name age sex score
name age sex score
Daiv 18 男 99.8
('name', 'Daiv') ('age', 18) ('sex', '男') ('score', 99.8)