【发布时间】:2022-01-02 21:23:36
【问题描述】:
(此问题基于已删除的推文)
我同时使用 Python3.9 和 Python3.10 运行以下命令:
$ python -m timeit 'tuple([-x for x in range(1000)])'
10000 loops, best of 5: 35.7 usec per loop
$ python -m timeit 'tuple(-x for x in range(1000))'
5000 loops, best of 5: 45.7 usec per loop
令人惊讶的是,构造额外对象(列表)的版本更快。为什么会这样?如果这确实更快,为什么元组构造函数不只是在后台实例化一个列表?
注意:我还对长度为 10 和长度为 100 万的元组进行了计时,带有列表的版本总是更快。
【问题讨论】: