Python基础语法第六章之字典

简介: 啥是键值对?这是计算机/生活中一个非常广泛使用的概念.把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值.

 一、字典

1.1字典是什么

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

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

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

1.2创建字典

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

    image.gif

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

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

    使用 print 来打印字典内容

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

    image.gif

    image.gif编辑

      • 为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写.
      student = {
          'id': 1,
          'name': 'zhangsan'
      }

      image.gif

      最后一个键值对, 后面可以写 , 也可以不写.

      1.3查找 key

        • 使用 in 可以判定 key 是否在 字典 中存在. 返回布尔值.
        student = {
            'id': 1,
            'name': 'zhangsan',
        }
        print('id' in student)
        print('score' in student)

        image.gif

        image.gif编辑

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

          image.gif

          image.gif编辑

            • 如果 key 在字典中不存在, 则会抛出异常.
            student = {
                'id': 1,
                'name': 'zhangsan',
            }
            print(student['score'])

            image.gif

            image.gif编辑

            1.4新增/修改元素

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

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

              image.gif

              image.gif编辑

                • 如果 key 已经存在, 对取下标操作赋值, 即为修改键值对的值.
                student = {
                    'id': 1,
                    'name': 'zhangsan',
                    'score': 80
                }
                student['score'] = 90
                print(student)

                image.gif

                image.gif编辑

                1.5删除元素

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

                  image.gif

                  image.gif编辑

                  1.6遍历字典元素

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

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

                  image.gif

                  image.gif编辑

                  1.7取出所有 key 和 value

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

                    image.gif

                    image.gif编辑

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

                    dict_keys 同样适用.

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

                      image.gif

                      image.gif编辑

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

                        image.gif

                        image.gif编辑

                        1.8合法的 key 类型

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

                          • 可以使用 hash 函数计算某个对象的哈希值.
                          • 但凡能够计算出哈希值的类型, 都可以作为字典的 key.
                          print(hash(0))
                          print(hash(3.14))
                          print(hash('hello'))
                          print(hash(True))
                          print(hash(())) # ( ) 是一个空的元组

                          image.gif

                          image.gif编辑

                            • 列表无法计算哈希值.
                            print(hash([1, 2, 3]))

                            image.gif

                            image.gif编辑

                              • 字典也无法计算哈希值
                              print(hash({ 'id': 1 }))

                              image.gif

                              image.gif编辑

                              目录
                              相关文章
                              |
                              1月前
                              |
                              人工智能 Ubuntu IDE
                              【Python】基础:环境配置与基础语法
                              本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
                              56 4
                              |
                              13天前
                              |
                              机器学习/深度学习 数据挖掘 开发者
                              Python编程入门:理解基础语法与编写第一个程序
                              【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
                              |
                              23天前
                              |
                              存储 Python Perl
                              python正则语法
                              本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
                              20 2
                              |
                              29天前
                              |
                              存储 程序员 开发者
                              Python编程入门:从零开始掌握基础语法
                              【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
                              |
                              2月前
                              |
                              存储 JSON 索引
                              一文让你彻底搞懂 Python 字典是怎么实现的
                              一文让你彻底搞懂 Python 字典是怎么实现的
                              56 13
                              |
                              1月前
                              |
                              存储 C语言 索引
                              Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
                              本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
                              44 0
                              Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
                              |
                              1月前
                              |
                              存储 数据可视化 数据处理
                              【Python篇】快速理解Python语法:全面指南
                              【Python篇】快速理解Python语法:全面指南
                              48 1
                              |
                              1月前
                              |
                              存储 安全 Serverless
                              Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
                              这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
                              33 0
                              |
                              1月前
                              |
                              存储 自然语言处理 数据库
                              Python字典操作实现文章敏感词检索
                              Python字典操作实现文章敏感词检索
                              |
                              1月前
                              |
                              存储 JSON 数据处理
                              分析、总结Python使用列表、元组、字典的场景
                              分析、总结Python使用列表、元组、字典的场景
                              下一篇
                              无影云桌面