您的位置:

掌握 Python 字典的关键操作技巧

一、Python 字典基础

Python 的字典是一种可变、无序的映射类型,其内部所有元素都是键值对。这里的关键操作技巧就是对字典的基本的增、删、改、查操作。

1、增加键值对:可以使用赋值语句直接添加键值对,如:

            >>> dict = {'name': 'Tom', 'age': 20}
            >>> dict['gender'] = 'M'
            >>> print(dict)
            {'name': 'Tom', 'age': 20, 'gender': 'M'}

2、删除键值对:可以使用 del 或 pop 函数删除指定键值对,其中 pop 函数会返回被删除的键值对的值,如:

            >>> del dict['age']
            >>> print(dict)
            {'name': 'Tom', 'gender': 'M'}
            >>> gender = dict.pop('gender')
            >>> print(dict)
            {'name': 'Tom'}
            >>> print(gender)
            M

3、修改键值对:可以直接使用赋值语句修改已有的键值对,如:

            >>> dict['name'] = 'Mike'
            >>> print(dict)
            {'name': 'Mike'}

4、查询键值对:可以直接通过键访问对应的值,如:

            >>> print(dict['name'])
            Mike

二、Python 字典高级操作

除了基于字典的基本操作,Python 还提供了一些字典高级操作来更好地支持字典的一些场景需求。

1. 字典合并

有时候,我们需要将多个字典合并成一个字典,Python 也提供了方便的方式来实现这个需求,如下:

            >>> dict1 = {'name': 'Tom'}
            >>> dict2 = {'age': 20, 'gender': 'M'}
            >>> dict3 = {'height': 170}
            >>> dict4 = {**dict1, **dict2, **dict3}
            >>> print(dict4)
            {'name': 'Tom', 'age': 20, 'gender': 'M', 'height': 170}

2. 字典遍历

当我们需要遍历字典时,可以使用 for 循环结合 items、keys 或 values 函数进行操作。items 函数会返回一个包含所有 (key, value) 对元组的列表,keys 函数会返回一个包含所有键的列表,values 函数会返回一个包含所有值的列表,如下:

            >>> dict = {'name': 'Tom', 'age': 20, 'gender': 'M'}
            >>> for k, v in dict.items():
            ...    print(k, v)
            name Tom
            age 20
            gender M
            >>> for k in dict.keys():
            ...    print(k)
            name
            age
            gender
            >>> for v in dict.values():
            ...    print(v)
            Tom
            20
            M

3. 字典推导式

类似于列表推导式,Python 中也支持字典推导式,可以快速生成字典。字典推导式的语法为 {key: value for key, value in iterable},其中 iterable 需要返回一个包含键值对元组的可迭代对象。如下:

            >>> data = [('name', 'Tom'), ('age', 20), ('gender', 'M')]
            >>> dict = {k: v for k, v in data}
            >>> print(dict)
            {'name': 'Tom', 'age': 20, 'gender': 'M'}

三、Python 字典应用场景

Python 字典不仅仅用来存储键值对,其具有良好的映射性质,可以应用于许多场景。

1. 统计字符出现次数

Python 字典可以非常方便地用来统计字符串中出现的所有字符以及出现次数。Python 标准库中的 collections 模块提供了一个 Counter 类用来实现这个需求,如下:

            >>> from collections import Counter
            >>> s = 'hello world'
            >>> c = Counter(s)
            >>> print(dict(c))
            {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}

2. 构建 API 响应数据

在 构建 API 响应数据 时,往往需要将数据以 JSON 格式返回,而在 Python 中,JSON 格式其实就是字典格式。因此,可以通过 Python 字典来完美地构建 API 响应数据。如下:

            data = {
                'name': 'Tom',
                'age': 20,
                'gender': 'M',
                'education': {
                    'university': 'Tsinghua University',
                    'major': 'Computer Science',
                    'graduation_date': '2022-06-30'
                }
            }
            response = {'code': 0, 'success': True, 'data': data}
            print(response)
            {'code': 0, 'success': True, 'data': {'name': 'Tom', 'age': 20, 'gender': 'M', 'education': {'university': 'Tsinghua University', 'major': 'Computer Science', 'graduation_date': '2022-06-30'}}}

3. 对象属性映射

在 Python 中,可以通过内置函数 vars 获取对象的属性和属性值信息,并将其映射到字典中,如下:

            class Student:
                def __init__(self, name, age, gender, university, major, graduation_date):
                    self.name = name
                    self.age = age
                    self.gender = gender
                    self.education = {'university': university, 'major': major, 'graduation_date': graduation_date}
            
            student = Student('Tom', 20, 'M', 'Tsinghua University', 'Computer Science', '2022-06-30')
            print(vars(student))
            {'name': 'Tom', 'age': 20, 'gender': 'M', 'education': {'university': 'Tsinghua University', 'major': 'Computer Science', 'graduation_date': '2022-06-30'}}

结语

Python 字典是 Python 编程中不可或缺的一部分,掌握 Python 字典操作技巧有助于提升 Python 程序的性能和可读性。通过上面的阐述,相信读者对 Python 字典的基本操作、高级操作、应用场景都有了更深入的理解。