以下是我的时间安排:
>>> import timeit
>>> timeit.timeit(lambda: set(l))
0.7210583936611334
>>> timeit.timeit(lambda: {*l})
0.5386332845236943
为什么我的意见虽然相等,但却不被采纳。
所以从这个例子来看,解包速度很快,对吧?
[]
比list()
更快; 解释器包括专门支持基于语法的操作的支持,使用专门的代码路径,而构造函数调用涉及以下内容:
dict
查找,一个在全局作用域中,当其失败时在内置作用域中进行另一个查找){*range(10000)}
不会明显/可靠地比set(range(10000))
更快,因为实际的构建工作远远超过了通过通用分派加载和调用构造函数的开销。[]
比 list()
更快,哇,解释得很好,只能在8分钟内接受。 - U13-Forward
set
可能会被重新定义,因此需要进行额外的字典查找,但这可能并不能完全解释差异。 - Michael Butscher