Python函数默认参数与数据结构技巧
需积分: 49 107 浏览量
更新于2024-08-08
收藏 2.01MB PDF 举报
"《Python Cookbook》第三版,由熊能翻译,发布于2017年12月9日,是一本关于Python编程的数据结构、算法、字符串和文本处理、数字日期和时间等内容的实战指南。书中涵盖了各种编程技巧和解决方案,旨在提升Python程序员的技能和效率。"
在Python编程中,定义有默认参数的函数是一种常见的做法,它允许函数在调用时可以不提供所有参数,未提供的参数将采用预先设定的默认值。例如,在描述中提到的`spam`函数,其第二个参数`b`默认值为42,如果不提供`b`的值,它将自动取42。这是通过在函数定义时给参数赋默认值来实现的:
```python
def spam(a, b=42):
print(a, b)
```
调用`spam(1)`会打印`1 42`,因为`b`使用了默认值;而`spam(1, 2)`会打印`1 2`,因为`b`被显式地赋予了新值。
然而,需要注意的是,默认参数值应当是不可变的,因为如果默认值是一个可变对象(如列表、集合或字典),函数可能会在不同调用间保留状态,这通常不是预期的行为。例如,将列表作为默认值:
```python
def spam(a, b=None):
if b is None:
b = []
# ...
```
在这个例子中,如果`b`未被赋值,函数内部会创建一个新的空列表,避免了因多次调用函数而导致的共享状态问题。
书中还介绍了Python编程中其他诸多实用技巧,包括但不限于:
1. 数据结构的处理,如解压序列赋值给多个变量、保留最后N个元素、查找最大或最小的N个元素等;
2. 优先级队列的实现,适用于需要按优先级处理任务的场景;
3. 字典的操作,如映射多个值、排序、查找共同项、删除序列中的重复元素等;
4. 序列和字典的排序、分组和过滤;
5. 字符串操作,如多界定符分割、匹配、替换、忽略大小写匹配、Unicode处理等;
6. 数字和日期的处理,包括数字的四舍五入、浮点数运算、格式化输出、整数的二进制和十六进制转换、复数运算以及处理无穷大和NaN等。
这些内容覆盖了Python编程的广泛领域,对于提升编程技能和解决实际问题有着重要的参考价值。
5907 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
黎小葱
- 粉丝: 24
- 资源: 3953
最新资源
- NCRE二级C语言程序设计辅导
- basic linux command
- Java笔试时可能出现问题及其答案.doc
- 同济大学线性代数第四版课后习题答案
- A Guide to MATLAB for Beginners and Experienced Users - Hunt Lipsman & Rosenberg
- Oracle9i:SQL Ed 2.0.pdf
- ejb3.0实例教程
- oracle-commands-zh-cn
- inno setup 脚本集
- IT服务能力成熟度模型
- PCB转原理图方法攻略
- PHP登录注册制作过程
- 硬件工程师手册_华为资料
- 神奇的-----ant的使用
- XILINXSPARTAN_start_kit_3manual.pdf
- R1762_R2632_R2700 RGNOS10.2配置指南_第一部分 基础配置指南