首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第7章 编程术语
7.1 编程术语定义
7.1.1 作为语言的Python和作为解释器的Python
7.1.2 垃圾回收
7.1.3 字面量
7.1.4 关键字
7.1.5 对象、值、实例和身份
7.1.6 项
7.1.7 可变和不可变
7.1.8 索引、键和哈希值
7.1.9 容器、序列、映射和集合类型
7.1.10 特殊方法
7.1.11 模块和包
7.1.12 可调用对象和头等对象
7.2 经常被混淆的术语
7.2.1 语句和表达式
7.2.2 块、子句和主体
7.2.3 变量和特性
7.2.4 函数和方法
7.2.5 可迭代对象和迭代器
7.2.6 语法错误、运行时错误和语义错误
7.2.7 形参和实参
7.2.8 显式类型转换和隐式类型转换
7.2.9 属性和特性
7.2.10 字节码和机器码
7.2.11 脚本和程序,以及脚本语言和编程语言
7.2.12 库、框架、SDK、引擎、API
第8章 常见的Python陷阱
8.1 循环列表的同时不要增删其中的元素
8.2 复制可变值时务必使用copy.copy()和copy.deepcopy()
8.3 不要用可变值作为默认参数
8.4 不要通过字符串连接创建字符串
8.5 不要指望sort()按照字母顺序排序
8.6 不要假设浮点数是完全准确的
8.7 不要使用链式!=运算符
8.8 不要忘记在仅有一项的元组中添加逗号
第9章 Python的奇特难懂之处
9.1 为什么256 是256,而257 不是257
9.2 字符串驻留
9.3 假的Python 增量运算符和减量运算符
9.4 传递空列表给all()
9.5 布尔值是整数值
9.6 链式使用多种运算符
9.7 Python 的反重力特性
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(三)
小册名称:Python编程轻松进阶(三)
### 7.1.6 项:深入Python高级数据结构与应用 在Python编程的进阶之路上,掌握并灵活运用高级数据结构是提升编程效率和解决复杂问题能力的关键一步。本章“7.1.6 项”将深入探讨Python中几种重要的高级数据结构,包括但不限于字典的进阶使用、集合的高级操作、以及自定义数据结构的实现与应用。通过这一章的学习,读者将能够更加熟练地运用这些工具,构建出既高效又易于维护的代码。 #### 7.1.6.1 字典的进阶应用 字典(Dictionary)是Python中非常强大且灵活的数据结构,它以键值对(key-value pairs)的形式存储数据,使得数据检索、插入和删除操作都非常高效。除了基本的操作外,本节将介绍字典的进阶应用技巧。 **1. 字典推导式(Dictionary Comprehensions)** 字典推导式提供了一种简洁的方式来创建字典,特别适合从其他可迭代对象(如列表、元组或另一个字典)中快速生成新字典。 ```python # 从列表创建字典,其中列表元素为元组,每个元组包含两个元素(键和值) keys = ['a', 'b', 'c'] values = [1, 2, 3] dict_from_list = {k: v for k, v in zip(keys, values)} print(dict_from_list) # 输出: {'a': 1, 'b': 2, 'c': 3} # 从另一个字典中筛选数据 old_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4} new_dict = {k: v for k, v in old_dict.items() if k in ['a', 'c']} print(new_dict) # 输出: {'a': 1, 'c': 3} ``` **2. 字典的默认字典(Defaultdict)** `collections.defaultdict`是Python标准库中的一个类,它为字典中的每个键提供了一个默认值。这在处理计数、分组等任务时非常有用。 ```python from collections import defaultdict # 使用int作为默认值,用于计数 counter = defaultdict(int) for word in ['apple', 'banana', 'apple', 'orange']: counter[word] += 1 print(counter) # 输出: defaultdict(<class 'int'>, {'apple': 2, 'banana': 1, 'orange': 1}) # 使用列表作为默认值,用于分组 groups = defaultdict(list) for student in [('Alice', 'Math'), ('Bob', 'Science'), ('Alice', 'English')]: groups[student[0]].append(student[1]) print(groups) # 输出: defaultdict(<class 'list'>, {'Alice': ['Math', 'English'], 'Bob': ['Science']}) ``` #### 7.1.6.2 集合的高级操作 集合(Set)是一个无序的、不包含重复元素的数据结构。它主要用于数学上的集合操作,如并集、交集、差集和对称差集等。 **1. 集合操作函数** - `union(other) | other`:返回两个集合的并集。 - `intersection(other) & other`:返回两个集合的交集。 - `difference(other) - other`:返回集合的差集,即存在于当前集合但不在另一个集合中的元素。 - `symmetric_difference(other) ^ other`:返回两个集合的对称差集,即两个集合中不重复的元素。 ```python set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} print(set1.union(set2)) # 输出: {1, 2, 3, 4, 5, 6} print(set1.intersection(set2)) # 输出: {3, 4} print(set1.difference(set2)) # 输出: {1, 2} print(set1.symmetric_difference(set2)) # 输出: {1, 2, 5, 6} ``` **2. 集合推导式** 类似于字典推导式,集合推导式也提供了一种从其他可迭代对象快速生成集合的方法。 ```python # 从列表中生成集合,去除重复元素 nums = [1, 2, 2, 3, 4, 4, 5] unique_nums = {num for num in nums} print(unique_nums) # 输出: {1, 2, 3, 4, 5} # 使用条件表达式 squared_nums = {x**2 for x in range(10) if x % 2 == 0} print(squared_nums) # 输出: {0, 4, 16, 36, 64} ``` #### 7.1.6.3 自定义数据结构的实现 在Python中,除了使用内置的数据结构外,还可以根据需要自定义数据结构。这通常通过定义类(Class)来实现,使得数据结构能够封装数据和相关操作,提高代码的可读性和可维护性。 **1. 栈(Stack)的实现** 栈是一种后进先出(LIFO, Last In First Out)的数据结构,常用于实现撤销操作、函数调用栈等场景。 ```python class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if not self.is_empty(): return self.items.pop() return None def peek(self): if not self.is_empty(): return self.items[-1] return None def size(self): return len(self.items) ``` **2. 队列(Queue)的实现** 队列是一种先进先出(FIFO, First In First Out)的数据结构,常用于任务调度、并发编程等场景。 ```python from collections import deque class Queue: def __init__(self): self.items = deque([]) def is_empty(self): return len(self.items) == 0 def enqueue(self, item): self.items.append(item) def dequeue(self): if not self.is_empty(): return self.items.popleft() return None def size(self): return len(self.items) ``` ### 结语 本章“7.1.6 项:深入Python高级数据结构与应用”通过详细讲解字典的进阶应用、集合的高级操作以及自定义数据结构的实现,帮助读者深入理解并掌握Python中这些强大的数据结构工具。这些知识不仅能提升编程效率,还能在处理复杂问题时提供有力的支持。希望读者能够通过本章的学习,进一步提升自己的Python编程能力,迈向编程进阶之路的新高度。
上一篇:
7.1.5 对象、值、实例和身份
下一篇:
7.1.7 可变和不可变
该分类下的相关小册推荐:
Python合辑1-Python语言基础
Python合辑8-变量和运算符
实战Python网络爬虫
Python合辑9-判断和循环
Python合辑3-字符串用法深度总结
Python高并发编程与实战
Python与办公-玩转PDF
Python高性能编程与实战
Python合辑6-字典专题
Python编程轻松进阶(一)
Python与办公-玩转PPT
剑指Python(万变不离其宗)