zoukankan      html  css  js  c++  java
  • 列表与元组的速度比较

    IPython 中用 magic 命令 %timeit 来计时。

    比较生成速度

    %timeit [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]
    
    1000000 loops, best of 3: 456 ns per loop
    
    %timeit (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)
    
    10000000 loops, best of 3: 23 ns per loop
    

    可以看到,元组的生成速度要比列表的生成速度快得多,相差大概一个数量级。

    比较遍历速度

    欢迎加入我的QQ群`923414804`与我一起学习,群里有我学习过程中整理的一些资料。
    

    产生内容相同的随机列表和元组:

    from numpy.random import rand
    values = rand(10000,4)
    lst = [list(row) for row in values]
    tup = tuple(tuple(row) for row in values)
    
     %timeit for row in lst: list(row)
    
    100 loops, best of 3: 4.12 ms per loop
    
    %timeit for row in tup: tuple(row)
    
    100 loops, best of 3: 2.07 ms per loop
    

    在遍历上,元组和列表的速度表现差不多。

    比较遍历和索引速度:

    %timeit for row in lst: a = row[0] + 1
    
    The slowest run took 12.20 times longer than the fastest. This could mean that an intermediate result is being cached 
    100 loops, best of 3: 3.73 ms per loop
    
    %timeit for row in tup: a = row[0] + 1
    
    100 loops, best of 3: 3.82 ms per loop
    

    元组的生成速度会比列表快很多,迭代速度快一点,索引速度差不多。

  • 相关阅读:
    Release和Debug的区别[转]
    SVM运用到多分类[引]
    HMM
    [转] 数据挖掘 机器学习 模式识别的关系
    [转]mysql 数据导入
    java 获取当前时间戳
    二叉树遍历建树[zhuan]
    关于c指针[转]
    词法分析
    组合数据类型练习,综合练习
  • 原文地址:https://www.cnblogs.com/paisenpython/p/10266404.html
Copyright © 2011-2022 走看看