zoukankan      html  css  js  c++  java
  • Python编程规范及性能优化三 分类: python 20130118 18:04 207人阅读 评论(0) 收藏

    使用xrange()处理长序列

    这样可为你节省大量的系统内存,因为xrange()在序列中每次调用只产生一个整数元素。而相反range(),它將直接给你一个完整的元素列表,用于循环时会有不必要的开销

    使用 Python generator

    这也可以节省内存和提高性能。例如一个视频流,你可以一个一个字节块的发送,而不是整个流。例如:

    >>> chunk = ( 1000 * i for i in xrange(1000)) 
    >>> chunk 
    >>> chunk.next() 

    >>> chunk.next() 
    1000 
    >>> chunk.next() 
    2000

    了解itertools模块

    该模块对迭代和组合是非常有效的。让我们生成一个列表[1,2,3]的所有排列组合,仅需三行Python代码:

    >>> import itertools 
    >>> iter = itertools.permutations([1,2,3]) #参数也可以是元组、字符串、字典;如果是字典,则对key值进行排列组合
    >>> list(iter) 
    [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

    学习bisect模块保持列表排序

    这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:

    >>> import bisect 
    >>> bisect.insort(list, element) 
    你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.


  • 相关阅读:
    oracle 数据库安全审计
    oracle 共享服务器监控
    oralce MTS
    配置一个Oracle共享服务器进程环境需要哪两项参数
    python3 小技巧(2)
    python3 操作注册表
    PYC文件简介
    常见HTTP状态(304,200等)
    用Python模拟浏览器操作
    python3下的IE自动化模块PAMIE
  • 原文地址:https://www.cnblogs.com/think1988/p/4628247.html
Copyright © 2011-2022 走看看