1.6.13. Python 3.1(2009/06/26)

新特性和改进

  1. OrderedDict有序字典

    • collections 模块中引入了 OrderedDict 类,这是一种保持插入顺序的字典。

      from collections import OrderedDict
      

    d = {’banana’: 3, ‘apple’:4, ‘pear’: 1, ‘orange’: 2}

1.6.14. dictionary sorted by key

OrderedDict(sorted(d.items(), key=lambda t: t[0])) OrderedDict([(’apple’, 4), (’banana’, 3), (’orange’, 2), (’pear’, 1)])

1.6.15. dictionary sorted by value

OrderedDict(sorted(d.items(), key=lambda t: t[1])) OrderedDict([(’pear’, 1), (’orange’, 2), (’banana’, 3), (’apple’, 4)])


性能优化

  1. io 模块的改进

    • 标准库中的 io 模块得到了显著改进,提升了文件和流操作的性能和一致性。

  2. 内置函数 next() 的改进

    • next() 函数现在支持默认值,用于在迭代器耗尽时返回指定的值,而不是引发 StopIteration 异常。

      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
      
  3. 字符串方法 str.format() 的改进

    • str.format() 方法得到了增强,支持更多的格式化选项和占位符语法,进一步简化了字符串处理。

  4. 改进的模块导入机制

    • 改进了模块导入机制,提升了模块加载的效率和灵活性,并引入了对相对导入的更好支持。

  5. math 模块的改进

    • math 模块新增了 math.isclose() 函数,用于比较两个浮点数是否接近。

      import math
      
      print(math.isclose(1.000001, 1.000002, rel_tol=1e-5))  # 输出: True
      
  6. 文件系统路径的改进

    • 改进了对文件系统路径的处理,增强了跨平台的文件操作支持。

  7. 性能提升

    • 通过优化字节码执行和内存管理等方面,Python 3.1 提升了整体性能,使得代码运行速度更快。

  8. 标准库更新

    • 多个标准库模块得到了更新和优化,增强了功能和性能,例如 itertoolsfunctools 模块。

  9. 弃用和移除

    • 对一些旧有特性和模块进行了弃用和移除,以简化语言和标准库。

Python 3.1 带来了许多新特性和改进,特别是在数据结构、文件 I/O 和性能优化方面,进一步增强了语言的功能和易用性。