1.while循环和for循环相同条件下的运行效率比较:

如下代码:

1 import time as tm
 2 import timeit as tt
 3 import random as rm
 5 def while_time():
 6     i = 0
 7     while i < 100000001:
 8         i += 1
 9         if i > 100000:
10             break
11     return i
14 def for_time():
15     j = 0
16     for i in range(100000001):
17         j += 1
18         if j > 100000:
19             break
20     return j
22 if __name__ == "__main__":
23     t1 = tt.Timer("for_time()", "from __main__ import for_time")
24         print(t1.timeit(number=10))
25         t2 = tt.Timer("while_time()", "from __main__ import while_time")
26         print(t2.timeit(number=10))

结果:

python 循环 很慢 python for循环效率_数据结构

说明:如上结果,for循环和while循环的时间复杂度都是T(n)=5*n+1,但是for循环的效率比while循环稍高。

2.遍历列表、元组、集合的效率比较:
如下代码:

1 def list_time():
 2     for i in list1:
 3     i += 1
 6 def tuple_time():
 7     for i in tp1:
 8     i += 1
11 def set_time():
12     for i in set1:
13     i += 1
15 def main():
16     list1 = list(range(30000000))
17     tp1 = tuple(list1)
18     set1 = set(list1)
19     t1 = tt.Timer("list_time()", "from __main__ import list_time")
20     print(t1.timeit(number=10))
21     t2 = tt.Timer("tuple_time()", "from __main__ import tuple_time")
22     print(t2.timeit(number=10))
23     t3 = tt.Timer("set_time()", "from __main__ import set_time")
24     print(t3.timeit(number=10))
25 if __name__ == "__main__":
26     main()

结果:

python 循环 很慢 python for循环效率_数据结构_02


说明:三个函数的查找的时间复杂度都为O(n),列表和元组的遍历效率差不多,集合遍历的效率稍低。



随机数、概率密度 1. 随机数:主要由 numpy.random 模块完成numpy.random.rand(3,2,3) #使用 [0,1) 区间随机数均匀分布填充一个(3,2,3)(自定义尺寸)数组 numpy.random.randn(3,2,3) // 使用标准正态分布而已 np.random.randint(low, high, size

在做项目中,常常使用到数据库连接串,大家都多少的用到过,但你对其中的各参数熟悉吗?深入的使用你了解多少,Max Pool Size什么意思,有何影响?commandtimeout你设置了吗?这些东西也许你并不太注意,下文就结合个人的应用,对这些连接串相关的内容进行说明。在SQLServer数据库中,常用的数据库连接串一般都是这样书写的: 在做项目中,常常