为什么使用切片浅拷贝列表比使用内置的
答案: 为什么使用切片浅拷贝列表比使用内置的
list
函数快得多?答案: 为什么使用切片浅拷贝列表比使用内置的
list
函数快得多?In [1]: x = range(10)
In [2]: timeit x_ = x[:]
10000000 loops, best of 3: 83.2 ns per loop
In [3]: timeit x_ = list(x)
10000000 loops, best of 3: 147 ns per loop
通常当我遇到像这样奇怪的问题时,它们可以在python3中得到解决 - 但是这种差异仍然存在:
In [1]: x = list(range(10))
In [2]: timeit x_ = x[:]
10000000 loops, best of 3: 100 ns per loop
In [3]: timeit x_ = list(x)
10000000 loops, best of 3: 178 ns per loop
list
是一个需要调用的函数。 - njzk2PyList_CheckExact
,但这只是指针算术和 C 级分支(最多几十个周期),所以我认为它不会是一个重要因素。 - user395760