【深入浅出 】——【Python 字典】——【详解】

6分钟前 505阅读

目录

1. 什么是 Python 字典?

1.1 字典的基本概念

1.2 字典的用途

1.3 字典的优势

2. 字典的基本特点

2.1 键的唯一性

2.2 可变性

2.3 无序性

3. 如何创建字典?

3.1 使用 {} 符号

3.2 使用 dict() 工厂方法

3.3 使用 fromkeys() 方法

4. 字典的键和值的类型可以不同

注意事项:

5. 如何访问字典中的元素?

注意事项:

6. 遍历字典

注意事项:

7. 修改字典中的元素

7.1 新增元素

7.2 修改元素

注意事项:

8. 删除字典中的元素

8.1 使用 del 删除某个键值对

8.2 使用 clear() 方法清空整个字典

8.3 使用 pop() 函数删除键值对并获取到对应的值

注意事项:

9. 查找元素是否在字典中

注意事项:

10. 字典的比较

总结


【深入浅出 】——【Python 字典】——【详解】【深入浅出 】——【Python 字典】——【详解】

专栏:python学习笔记 

Python 字典是一种强大而灵活的数据结构,非常适合存储和管理键值对。

1. 什么是 Python 字典?

Python 字典是一种映射类型的数据结构,其中的数据以键值对(key-value pairs)的形式存储。字典的实现基于哈希表,使得键值对的查找和操作速度非常快。

1.1 字典的基本概念

  • 键(Key): 键必须是唯一的,并且是可哈希的(如整数、字符串、元组等不可变类型)。这意味着两个不同的键不能具有相同的哈希值。
  • 值(Value): 值可以是任意类型,包括数字、字符串、列表、甚至是另一个字典。

    小李很执着理解: 想象字典是一种超级便利的“查找表”,你可以通过独一无二的“名字”(键)快速找到对应的“内容”(值)。

    1.2 字典的用途

    字典在很多场景下都非常有用,例如:

    • 配置文件: 存储应用程序的配置参数。
    • 计数器: 统计元素出现的频率。
    • 缓存: 存储计算结果以避免重复计算。
    • 快速查找: 通过键快速访问数据。

      1.3 字典的优势

      • 查找速度快: 由于字典基于哈希表实现,查找操作的平均时间复杂度为 O(1)。
      • 灵活性高: 字典的键和值可以是任意类型,提供了极大的灵活性。

        2. 字典的基本特点

        字典有几个重要的特点,使其在各种应用场景中非常有用。

        2.1 键的唯一性

        字典中的每个键必须是唯一的。如果试图插入一个重复的键,后者会覆盖前者。

        a = {'x': 1, 'y': 2}
        a['x'] = 3
        print(a)
        # 输出: {'x': 3, 'y': 2}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: 字典就像一份购物清单,每个项目都有独特的名字,如果名字重复,新的会替换旧的。

        2.2 可变性

        字典是可变的,这意味着可以动态地增加、修改和删除键值对。

        a = {'x': 1}
        a['y'] = 2
        print(a)
        # 输出: {'x': 1, 'y': 2}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: 你可以随时往购物清单里添加或删除项目。

        2.3 无序性

        在 Python 3.7 之前,字典中的元素没有顺序。从 Python 3.7 开始,字典按插入顺序保存键值对。

        a = {'x': 1, 'y': 2, 'z': 3}
        print(a)
        # 输出: {'x': 1, 'y': 2, 'z': 3}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: 虽然购物清单里项目的顺序不重要,但从 Python 3.7 开始,它会记住你添加项目的顺序。

        3. 如何创建字典?

        Python 提供了多种方式来创建字典:

        3.1 使用 {} 符号

        这是最常用的创建字典的方法:

        a = {'x': 1, 'y': 2}
        print(a)
        # 输出: {'x': 1, 'y': 2}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: 用大括号 {} 包裹一对对的名字和值,就能创建一个字典。

        3.2 使用 dict() 工厂方法

        适用于从其他数据结构(如元组列表)创建字典的情况:

        a = dict([('x', 1), ('y', 2)])
        print(a)
        # 输出: {'x': 1, 'y': 2}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: 用 dict() 函数也能创建字典,只要提供成对的名字和值。

        3.3 使用 fromkeys() 方法

        用于创建包含指定键并且所有值相同的字典:

        a = {}.fromkeys(('x', 'y'), 0)
        print(a)
        # 输出: {'x': 0, 'y': 0}
        

        【深入浅出 】——【Python 字典】——【详解】

        小李很执着理解: fromkeys() 方法创建的字典里所有的名字都有相同的值。

        4. 字典的键和值的类型可以不同

        在字典中,键和值的类型不需要相同。例如,可以有整数键和字符串值的组合:

        a = {1: 'apple', 'b': 2.5}
        print(a)
        # 输出: {1: 'apple', 'b': 2.5}
        

        注意事项:

        • 键必须是不可变类型(如整数、字符串、元组)。
        • 值可以是任何类型,包括列表和其他字典。

          小李很执着理解: 字典里的名字和内容可以是任何类型,比如数字对应水果,字母对应小数。

          5. 如何访问字典中的元素?

          使用方括号 [] 可以直接访问字典中的值:

          a = {'x': 10, 'y': 20}
          print(a['x'])  # 输出: 10
          

          注意事项:

          • 访问不存在的键会抛出 KeyError 错误。

            可以使用 get() 方法避免 KeyError:

            value = a.get('z', '默认值')
            print(value)  # 输出: 默认值
            

            小李很执着理解: 用名字查找内容就像查字典,用 get() 方法可以避免找不到名字时报错。

            6. 遍历字典

            可以使用 for 循环遍历字典中的键和值:

            a = {'x': 0, 'y': 0}
            for key in a:
                print(key, a[key])
            # 输出(顺序可能不同):
            # x 0
            # y 0
            

            【深入浅出 】——【Python 字典】——【详解】

            注意事项:

            可以使用 items() 方法同时遍历键和值:

            for key, value in a.items():
                print(key, value)
            

            小李很执着理解: 用 for 循环可以遍历字典里的所有名字和内容,用 items() 方法可以同时获取名字和内容。

            7. 修改字典中的元素

            使用方括号 [] 可以新增或修改字典元素:

            7.1 新增元素

            a = {}
            a[1] = 100
            print(a)  # 输出: {1: 100}
            

            小李很执着理解: 用方括号 [] 给字典增加新元素。

            7.2 修改元素

            a[1] = 200
            print(a)  # 输出: {1: 200}
            

            注意事项:

            使用 update() 方法可以批量更新字典:

            a.update({'b': 300, 'c': 400})
            print(a)  # 输出: {1: 200, 'b': 300, 'c': 400}
            

            小李很执着理解: 用方括号 [] 修改字典里的内容,用 update() 方法一次更新多个内容。

            8. 删除字典中的元素

            8.1 使用 del 删除某个键值对

            a = {1: 100}
            del a[1]
            print(a)  # 输出: {}
            

            8.2 使用 clear() 方法清空整个字典

            a = {1: 100, 2: 200}
            a.clear()
            print(a)  # 输出: {}
            

            8.3 使用 pop() 函数删除键值对并获取到对应的值

            a = {1: 100, 2: 200}
            value = a.pop(1)
            print(value)  # 输出: 100
            print(a)      # 输出: {2: 200}
            

            注意事项:

            popitem() 方法可以删除并返回最后一个键值对(按插入顺序):

            a = {1: 100, 2: 200}
            key, value = a.popitem()
            print(key, value)  # 输出: 2 200
            print(a)           # 输出: {1: 100}
            

            小李很执着理解: 用 del 删除单个元素,用 clear() 清空字典,用 pop() 删除并获取元素内容。

            9. 查找元素是否在字典中

            可以使用 in 或 not in 来判定一个键是否在字典中:

            a = {'x': 10, 'y': 20}
            print('x' in a)  # 输出: True
            print('z' in a)  # 输出: False
            

            【深入浅出 】——【Python 字典】——【详解】

            注意事项:

            • in 操作符只检查键是否存在,不检查值。

              小李很执着理解: 用 in 判断字典里是否有某个名字。

              10. 字典的比较

              字典的比较操作符与序列不同。两个字典只有在键和值完全相同时才相等:

              a = {'x': 1, 'y': 2}
              b = {'x': 1, 'y': 2}
              print(a == b)  # 输出: True
              

              【深入浅出 】——【Python 字典】——【详解】

              • 注意事项:
                • 字典之间的大小关系不常用,因为字典是无序的。
                • 可以使用 == 和 != 来比较字典。

                小李很执着理解: 用 == 比较字典是否相等,字典的大小关系通常不需要比较。

                总结

                Python 字典是一种非常灵活且高效的数据结构,适用于需要快速查找和存储键值对的场景。字典的强大功能使其成为 Python 编程中不可或缺的一部分。掌握字典的使用,可以大大提高代码的效率和可读性。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]