1.添加、修改字典
- 字典没有索引
- 使用[],添加或修改字典,根据key是否存在决定,若是key存在则是修改,key不存在则是添加
- update函数:添加新的字典,若新字典中有和原字典相同的key,则该kay的value会被新字典的value覆盖
- update用法:dict.update(new_dict),new_dict是新字典,无返回值
- setdefault函数:获取某个key的value,若key不存在,将会添加新的key和value,若key存在,则value不会改变
- setdefault用法:dict.setdefault(key, value)
例:
student = {'name': 'mike'}
print('字典:{}'.format(student))
# 方式一:使用[]
student['name'] = 'angle' # key存在,这里是修改
student['age'] = 12 # key不存在,这里是添加
print('修改添加字典后:{}'.format(student))
# 方式二:update函数
new_dict = {'name': 'update', 'sex': '女'}
student.update(new_dict)
print('update修改添加字典后:{}'.format(student))
# 方式三:setdefault函数
student.setdefault('class', 'A') # key不存在,会添加新的key和value
student.setdefault('name', 'setdefault') # key存在,字典不变
print('setdefault修改添加字典后:{}'.format(student))
结果:
2.keys函数:获取当前字典中所有的key(键)
用法:
- dict.keys(),无需传参,返回一个key集合的伪列表
- 伪列表:不具备列表的所有功能
- 将伪列表转化成列表:使用list函数
例:
student = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典:{}'.format(student))
# 获取字典的key
student_key = student.keys() # 获取的是一个伪列表
print('返回key:{},数据类型是:{}'.format(student_key,type(student_key)))
list_key = list(student_key) # 将伪列表转化成列表
print('伪列表转化成列表:{},数据类型是:{}'.format(list_key,type(list_key)))
结果:
3.values函数:获取当前字典中所有的value(值)
用法:
- dict.values(),无需传参,返回一个key集合的伪列表
- 伪列表:不具备列表的所有功能
- 将伪列表转化成列表:使用list函数
例:
student = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典:{}'.format(student))
# 获取字典的value
student_value = student.values() # 获取的是一个伪列表
print('返回key:{},数据类型是:{}'.format(student_value,type(student_value)))
list_value = list(student_value) # 将伪列表转化成列表
print('伪列表转化成列表:{},数据类型是:{}'.format(list_value,type(list_value))
结果:
4.根据key获取value
- 方式一:dict[key],key不存在,会报错
- 方式二:get函数,dict.get(key, default=None),default表示若key不存在,返回的默认值,这个值默认的是None,也可自定义一个值
- 优先使用get函数
例:
student = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典:{}'.format(student))
# 根据key获取value
name1 = student['name'] # 使用[]方式获取
name2 = student.get('name') # 使用get函数获取存在的key
study = student.get('study') # 使用get函数获取存在的key
print('name是:{}'.format(name1))
print('name是:{}'.format(name2))
print('study是一个不存在的key:{}'.format(study))
# in可以判断key是否存在,这里可以使用get判断字典中的value是否存在
b = bool(student.get('name'))
print('name是否存在:{}'.format(b))
结果:
5.字典删除
- clear函数:清空当前字典中所有数据;dict.clear(),无需传参,无返回值
- pop函数:删除字典中指定的key,并将其结果返回,若key不存在则报错;dict.pop(key),key希望被删除的键,返回key对应的value
- del函数:可删除整个字典,也可删除字典中某个键值对;del dict,del dict[key]
例:
student1 = {'name': 'update', 'age': 12, 'sex': '女'}
student2 = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典student1:{}'.format(student1))
print('字典student2:{}'.format(student1))
# clear()清空字典
student1.clear()
print('清空字典student1后:{}'.format(student1))
# pop(),删除key和其对应的value
name_value = student2.pop('name')
print('字典中删除的name的value:{}'.format(name_value))
print('删除字典student2中的name后:{}'.format(student2))
# del,删除key和其对应的value
del student2['age']
print('删除字典student2中的age后:{}'.format(student2))
# del,删除字典
del student2
结果:
6.copy函数:将当前字典复制一个新的字典
用法:
- dict.copy(),无需传参,返回一个内存地址不同但内容相同的字典
例:
student = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典:{}'.format(student))
# 拷贝字典
copy_student = student.copy()
# 修改旧字典
student['name'] = 'angle'
# 旧的字典有改变
print('修改字典:{}'.format(student))
# 新的字典没有改变
print('copy_student字典:{}'.format(copy_student))
7.popitem函数:删除当前字典中末尾一组键值对并将其返回
用法:
- dict.popitem(),无需传参,返回被删除的键值对,用元组包裹
- 若字典为空,会报错
例:
student = {'name': 'update', 'age': 12, 'sex': '女'}
print('字典:{}'.format(student))
# 删除最后一个键值对
last = student.popitem()
print('最后一个键值对是:{}'.format(last))
print('删除最后一个键值对后:{}'.format(student))
结果: