day-8字典
- 字典和列表的选择:需要同时保存多个数据的时候,如果多个数据的意义相同(不需要区分)就使用列表,如果多个数据的意义不同就使用字典。
1、认识字典(dict)
- 是容器型数据类型
- 将大括号{}作为容器的标志,里面多个键值段用逗号隔开:{键1: 值1, 键2: 值2,键3:值3,…}
- 键值对的格式:键:值
- 特点
- 字典是可变的(支持增删改);字典是无序(不支持下标,元素顺序不影响结果)
- 对元素的要求
- 字典的元素是键值对
- a.键的要求:键必须是不可变的类型的数据(数字、字符串、布尔、元组等);键是唯一的
- b.值的要求:没有要求
- 字典的元素是键值对
# 空字典
dict1 = {
}
# 字典中的元素只能是键值对
dict2 = {
'年龄': 11, 'name': '姓名'}
2、字典的基本操作
-
查 - 获取字典的值
-
查单个(重要) - 一次获取一个值
语法1:字典[键] - 获取字典中指定键对应的值(如果键不存在,就会报错)
语法2: 字典.get(键) - 获取字典中指定键对应的值(如果键值不存在,会返回None) 字典.get(键, 默认值) - 获取字典中指定键对应的值(如果键不存在,则返回默认值)
-
dog = {
'name': '旺财', 'age': 3, '种类': '土狗'}
print(dog['age'])
print(dog.get('age'))
- 列题示范
class1 = {
'name': 'python2201',
'address': '12教室',
'lecturer': {
'name': '余婷',
'gender': '女',
'tel': '13678192302'
},
'class_teacher': {
'name': '张瑞燕',
'gender': '女',
'tel': '110',
'age': 20,
'QQ': '617818271'
},
'students': [
{
'name': '小明', 'gender': '男', 'age': 18, 'score': 100, 'education': '专科', 'linkman': {
'name': '小吴', 'tel': '110'}},
{
'name': '小花', 'gender': '女', 'age': 20, 'score': 98, 'education': '本科', 'linkman': {
'name': '小张', 'tel': '120'}},
{
'name': '张三', 'gender': '男', 'age': 30, 'score': 90, 'education': '本科', 'linkman': {
'name': '小赵', 'tel': '119'}},
{
'name': '李四', 'gender': '男', 'age': 22, 'score': <