Python 列表与元组的速度比较

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。Python 列表与元组的速度比较,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

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

比较遍历速度

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

#Python学习交流群:778463939

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213647.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!