• python基础语法(十)


    感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
    🐒🐒🐒个人主页
    🥸🥸🥸C语言
    🐿️🐿️🐿️C语言例题
    🐣🐓🏀python

    字典

    字典是什么

    字典是一种存储键值对的结构.
    键值对是把键和值进行一个一对一的映射, 然后就可以根据键, 快速找到值

    就比如:学校的每个同学, 都会有一个唯一的学号.知道了学号, 就能确定这个同学.

    此处 “学号” 就是 “键”, 这个 “同学” 就是 “值”

    创建字典

    创建一个空的字典. 使用 { } 表示字典

    a = { }
    b = dict()
    print(type(a))
    print(type(b))
    
    • 1
    • 2
    • 3
    • 4

    也可以在创建的同时指定初始值

    键值对之间使用 , 分割, 键和值之间使用 : 分割. (冒号后面推荐加一个空格).

    使用 print 来打印字典内容

    student = { 'id': 1, 'name': 'zhangsan' }
    print(student)
    
    • 1
    • 2

    为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写.

    student = {
    	'id': 1,
    	'name': 'zhangsan'
    }
    
    • 1
    • 2
    • 3
    • 4

    查找key

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

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    }
    print('id' in student)
    print('score' in student)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用 [ ] 通过类似于取下标的方式, 获取到元素的值. 只不过此处的 “下标” 是 key. (可能是整数, 也可能是字符串等其他类型).

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    }
    print(student['id'])
    print(student['name'])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    }
    print(student['score'])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    新增/修改元素

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

    如果 key 不存在, 对取下标操作赋值, 即为新增键值对

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    }
    student['score'] = 90
    print(student)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    student['score'] = 90
    print(student)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    删除元素

    使用 pop 方法根据 key 删除对应的键值对.

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    student.pop('score')
    print(student)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    遍历字典元素

    直接使用 for 循环能够获取到字典中的所有的 key, 进一步的就可以取出每个值了

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    for key in student:
    	print(key, student[key])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    取出所有 key 和 value

    使用 keys 方法可以获取到字典中的所有的 key

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    print(student.keys())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    使用 values 方法可以获取到字典中的所有 value

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    print(student.values())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    使用 items 方法可以获取到字典中所有的键值对

    student = {
    	'id': 1,
    	'name': 'zhangsan',
    	'score': 80
    }
    print(student.items())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    合法的 key 类型

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

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

    可以使用 hash 函数计算某个对象的哈希值.

    但凡能够计算出哈希值的类型, 都可以作为字典的 key.

    print(hash(0))
    print(hash(3.14))
    print(hash('hello'))
    print(hash(True))
    print(hash(()))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    列表无法计算哈希值

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

    字典也无法计算哈希值

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

    总结

    字典也是一个常用的结构. 字典的所有操作都是围绕 key 来展开的.

    需要表示 “键值对映射” 这种场景时就可以考虑使用字典

  • 相关阅读:
    loss&BN
    C语言航路外传之如何隐藏代码及声明和定义的在工程中真正的使用场景
    4.4.2.1 内部类
    SpringBoot 如何集成 MyBatisPlus - SpringBoot 2.7.2实战基础
    Go的运算符解密:探索计算的奥秘
    ASEMI肖特基二极管MBR30200PT图片,MBR30200PT规格书
    记一次 .NET 某游戏服务后端 内存暴涨分析
    JupyterNotebook的快捷键
    RS-485设计指南
    ROS点云的Pointpillars实时目标检测
  • 原文地址:https://blog.csdn.net/2301_79178723/article/details/134043282