# Python 3.1(2009/06/26) ## 新特性和改进 1. **`OrderedDict`有序字典**: - 在 `collections` 模块中引入了 `OrderedDict` 类,这是一种保持插入顺序的字典。 ```python from collections import OrderedDict >>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2} # dictionary sorted by key >>> OrderedDict(sorted(d.items(), key=lambda t: t[0])) OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]) # dictionary sorted by value >>> OrderedDict(sorted(d.items(), key=lambda t: t[1])) OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)]) ``` ## 性能优化 2. **`io` 模块的改进**: - 标准库中的 `io` 模块得到了显著改进,提升了文件和流操作的性能和一致性。 3. **内置函数 `next()` 的改进**: - `next()` 函数现在支持默认值,用于在迭代器耗尽时返回指定的值,而不是引发 `StopIteration` 异常。 ```python iterator = iter([1, 2, 3]) print(next(iterator, 'default')) # 输出: 1 print(next(iterator, 'default')) # 输出: 2 print(next(iterator, 'default')) # 输出: 3 print(next(iterator, 'default')) # 输出: default ``` 4. **字符串方法 `str.format()` 的改进**: - `str.format()` 方法得到了增强,支持更多的格式化选项和占位符语法,进一步简化了字符串处理。 5. **改进的模块导入机制**: - 改进了模块导入机制,提升了模块加载的效率和灵活性,并引入了对相对导入的更好支持。 6. **`math` 模块的改进**: - `math` 模块新增了 `math.isclose()` 函数,用于比较两个浮点数是否接近。 ```python import math print(math.isclose(1.000001, 1.000002, rel_tol=1e-5)) # 输出: True ``` 7. **文件系统路径的改进**: - 改进了对文件系统路径的处理,增强了跨平台的文件操作支持。 8. **性能提升**: - 通过优化字节码执行和内存管理等方面,Python 3.1 提升了整体性能,使得代码运行速度更快。 9. **标准库更新**: - 多个标准库模块得到了更新和优化,增强了功能和性能,例如 `itertools` 和 `functools` 模块。 10. **弃用和移除**: - 对一些旧有特性和模块进行了弃用和移除,以简化语言和标准库。 Python 3.1 带来了许多新特性和改进,特别是在数据结构、文件 I/O 和性能优化方面,进一步增强了语言的功能和易用性。