一些技巧

2020-06-15  本文已影响0人  yousa_
  1. 开辟数组空间

不好的写法

a = [0 for _ in range(10000000)]

好的写法

a = [0] * 10000000

注意,这样搞是不对的

a = [ [0]*1000 ] * 1000
不等于
a = [ [0 for _ in range(1000)] for _ in range(1000)]
第一种相当于对[0]*1000 作了1000次浅拷贝,也就是说,当修改a[0][0] = 1时,a[1][0]、a[2][0]...a[999][0]也变成了1

2.循环问题中的优化

在循环时,尽可能多的利用内层循环,把大循环放在内层,如:

for i in range(1000):
    for j in range(100):
        for k in range(10):
            operation()
差于
for i in range(10):
    for j in range(100):
        for k in range(1000):
            operation()

3.import math

Pyhton中的math库和cmath库直接调用C语言中的函数接口,因此使用起来效率更高。
比如对于求幂次方的函数pow(),使用python自带函数pow()的时间复杂度为o(logn),而math.pow()执行浮点取幂,时间复杂度为o(1)

上一篇下一篇

猜你喜欢

热点阅读