利用timeit模快测试代码运型速度

import timeit

#
# li = []
# for i in range(1000):
#     li += [i]
#
#
# 第二种操作 列表生成器
# li = [i for i in range(1000)]
#
# 第三种 通过list方法转换成列表
# li = list(range(1000))
#
# 第四种 通过遍历range(n),再向空列表中添加元素的方法
# li = []
# for i in range(1000):
#  li.append(i)
import pprint
import timeit

def t1():
   li = []
   for i in range(10000):
      li.append(i)

def t2():
   for i in range(1000):
      li += [i]

def t3():
   [i for i in range(1000)]

def t4():
   li = list(range(1000))


timer1 = timeit.timeit(stmt = t1, number = 1000)
pprint.pprint(timer1)
print("append:", timer1)



#list内置操作的时间复杂度
*index[]  O(1) 索引是一步就能获取的
*append   O(1) 从后面加一个数值
pop()   O(1) 默认从尾部删除一个元素并输出(根据索引)
*pop(i)   O(n) 从指定位置开始删除某个元素并输出,如果是从头部删除的话,后面每个元素都要往前移一位(根据索引)
*insert(i, item)   O(n)
*contains(in)      O(n)   #查找是否在列表当中,遍历一遍才知道是不是在其中
get slice[x, y]   O(k)   #kx,y之间的差值
del slice         O(n)   #切一段位置后,其他的元素要移位补空位
set slice         O(n+k)   #设置切片:先删除部分切片你(n),再把要放入的元素插进去(k)
reversed()        O(n)
concatenate       O(k)    第二个列表的元素(n)加到第一个上去

multiply          O(nk)

#dict内置操作的时间复杂度
iteration O(n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值