Python系列-字典

 个人主页: 会编程的果子君
个人格言:“成为自己未来的主人~” 

目录

字典是什么

创建字典

查找key

新增/修改元素

删除元素

遍历字典元素

取出所有的key和value

合成的key类型

​编辑

小结


字典是什么

字典是一种存储键值对的结构

啥是键值对?这是计算机/生活中一个非常广泛使用的概念

把键(key)和值(value)进行一个一对一的映射,然后就可以根据键,快速找到值

创建字典

  • 创建一个空的字典,使用{}表示字典
    a={}
    b=dict()
    print(type(a))
    print(type(b))
    

  • 也可以在创建的同时指定初始值
  • 键值对之间使用,分割,键和值之间使用:分割,(置号后面推荐加一个空格)
  • 使用print来打印字典内容 
student={'id':1,'name':'zhangsan'}
print(student)
  • 为了代码更规范美观,在创建字典的时候往往会把多个键值对,分成多行来书写 
    student={
        'id':1,
        'name':'zhangsan'
    }
    

  • 最后一个键值对,可以写,,也可以不写 
student={
    'id':1,
    'name':'zhangsan',
}

查找key

  • 使用 in 可以判定 key 是否在字典中存在,返回布尔值

 

student={
    'id':1,
    'name':'zhangsan',
}
print('id'in student)
print('score' in student)

 

  • 使用 [ ] 通过类似于取下标的方式,获取到元素的值,只不过此处的“下标”是key(可能是整数,也可能是字符串等其他类型)
    student={
        'id':1,
        'name':'zhangsan',
    }
    # print('id'in student)
    # print('score' in student)
    print(student['id'])
    print(student['name'])

  • 如果key在字典中不存在,则会抛出异常

    student={
        'id':1,
        'name':'zhangsan',
    }
    print(student['score'])
    

新增/修改元素

使用 [ ] 可以根据 key 来新增/修改value

  • 如果 key 不存在,对取下标操作赋值,即为新增键值对
    student={
        'id':1,
        'name':'zhangsan',
             }
    student['score']=90
    print(student)
    

  • 如果key已经存在,对取下标操作赋值,即为修改键值对的值

    student={
        'id':1,
        'mame':'zhangsan',
        'score':80,
    }
    student['score']=90
    print(student)
    

删除元素

  • 使用pop方法根据key删除对应的键值对
    student={
        'id':1,
        'name':'zhangsan',
        'score':80,
    }
    student.pop('score')
    print(student)
    

遍历字典元素

  • 直接使用 for 循环能够获取到字典中的所有key,进一步就可以取出每一个值了
    student={
        'id':1,
        'name':'zhangsan',
        'score':80
    }
    
    for key in student:
        print(key,student[key])
        

    取出所有的key和value

  • 使用 keys 方法可以获取到字典中的所有的key
    student={
        'id':1,
        'name':'zhangsan',
        'score':80
    }
    
    print(student.keys())
    
    
    

此处的dict_keys是一个特殊的类型,专门用来表示字典的所有key,大部分元组支持的操作对于dict_keys同样适用

  • 使用values方法可以获取到字典中的所有value
    
    student={
        'id':1,
        'name':'zhangsan',
        'score':80
    }
    
    print(student.values())
    
    

此处的dict_values也是一个特殊的类型,和dict_keys类似

  • 使用items方法可以获取到字典中所有的键值对
    student={
        'id':1,
        'name':'zhangsan',
        'score':80
    }
    
    print(student.items())

合成的key类型

不是所有的类型都可以作为字典的key

字典本质上是一个哈希表,哈希表的key要求是“可哈希的”,也就是可以计算出一个哈希值

  • 可以使用hash函数计算某个对象的哈希值
  • 但凡能够计算出哈希值的类型,都可以作为字典的key
    print(hash(1))
    print(hash('hello'))
    print(hash(True))
    print(hash(()))
    
    

  • 列表无法计算哈希值

    print(hash([1,2,3]))
    

  • 字典也无法计算哈希值

    print(hash({'id':1}))

小结

字典也是一个常用的结构,字典的所有操作都是围绕 key 来展开的,需要表示“键值对映射”这种场景时就可以考虑使用字典

你可能感兴趣的:(Python,python,开发语言)