Python测量代码执行时间,可以用timeit,这是Python自带的内置函数。方便快捷。
做个简单小实验:
比如我们都知道:list列表的效率比tuple元组低
那到底低多少?就可以用这个内置函数来解决。
import timeit
import random
def list_func():
list1 = [random.randint(0, 100) for i in range(1000)]
def tup_func():
tup1 = (random.randint(0, 100) for i in range(1000))
list_time = timeit.timeit(stmt=list_func, number=100)
tup_time = timeit.timeit(stmt=tup_func, number=100)
print('生成列表的时间是',list_time * 1000)
print('生成元组的时间是',tup_time *1000) # 时间太小,会转换为科学计数法,所以需要乘以1000
运行结果:
说明:列表的初始化速度小于元组。
如何选用合适的数据类型?
1、如果存储的数据和数量不变------------------------------->用元组。
2、如果存储的数据或数量是可变的------------------------->用列表。
另外,对于其他数据类型:
需要高效随机读取------------------------------------------------>用列表。
需要关键字高效查找--------------------------------------------->用字典。
需要去重------------------------------------------------------------>用集合。
参考:
https://docs.python.org/zh-cn/3.9/library/timeit.html?highlight=timeit#timeit-examples