python代码性能优化的提示

python代码性能优化的提示
  1. 排序优先采用内置对象的排序方法
    def sortby(somelist, n):
        nlist = [(x[n], x) for x in somelist]
        nlist.sort()
        return [val for (key, val) in nlist]
  2. 字符串连接
    s = "".join(list)
    代替
  3. s = ""
    for substring in list:
        s += substring
  4. loop循环处理
    对简单的循环,用map来代替
  5. newlist = []
    for word in oldlist:
        newlist.append(word.upper())
    用下面map方式来优化
    newlist = map(str.upper, oldlist)
  6. 循环中避免用dots
    upper = str.upper
    newlist = []
    append = newlist.append
    for word in oldlist:
            append(upper(word))
  7. 用xrange代替range(xrange采用generator,但有限制,只能用于ints类型)
  8. 循环中尽可能采用本地变量
    对于没有也不能通过map优化的loop循环,循环体内应尽可能采用本地变量
  9. def func():
        upper = str.upper
        newlist = []
        append = newlist.append
        for word in oldlist:
            append(upper(word))
        return newlist
  10. 导入模块尽量在module级别,而不要在function级别
    import string ###### import statement outside function
    def doit2():
        string.lower('Python')
    
    for num in range(100000):
        doit2()
    代替:
  11. def doit1():
        import string ###### import statement inside function
        string.lower('Python')
    
    for num in range(100000):
        doit1()
设置