数据结构与算法python第五天

python数据类型的性能

中国大学链接

学习python两种内置数据类型上各种操作的大O数量级

  • 列表list和字典dict
  • 通过运行估计各种操作运行时间数量级

对比list和dict的操作

类型ListDict
索引自然数i不可变类型值key
添加append、extend、insertb[k]=v
删除pop、remove*pop
更新a[i]=vb[k]=v
正查a[i]、a[i:j]b[k]、 copy
反查index(v)、count(v)
其他reverse、sorthas_key、update

List列表数据类型常用操作性能

  • 最常用:按索引取值和赋值(v = a[i], a[i] = v)
    ·由于列表随机访问特性,操作执行时间与列表大小无关,均为O(1)
  • 列表增长,可选择append()和_add_() “+”
    · lst.append(v),执行时间是O(1)
    ` lst = lst+ [v], 执行时间是O(n+k),其中k是被加的列表的长度

4种生成前n个整数列表的方法

  • 循环连接列表(+)方式生成
def test1():
    l = []
    for i in range(1000):
        l = l + [i]
  • append方法添加元素生成
def test2():
    l = []
    for i in range(1000):
        l.append(i)
  • 列表推导式
def test3():
    l = [i for i in range(1000)]
  • range函数调用转成列表
def test4():
    l = list(range(1000))

使用timeit模块对函数计时

from timeit import Timer
t1 = Timer("test1()", "from __main__ import test1")
print("concat %f seconds\n" % t1.timeit(number= 1000)
# test1 调用1000次

方法计时

List基本操作的大O数量级

操作大O数量级
index()O(1)
index.assigmentO(1)
appendO(1)
pop()O(1)
pop(l)O(n)

那些仰望星空的人,自身也在发光

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leopold·Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值