这就是我的意思:
> python -m timeit "set().difference(xrange(0,10))"
1000000 loops, best of 3: 0.624 usec per loop
> python -m timeit "set().difference(xrange(0,10**4))"
10000 loops, best of 3: 170 usec per loop
Run Code Online (Sandbox Code Playgroud)
显然python遍历整个参数,即使事先知道结果是空集.这有什么好的理由吗?代码在python 2.7.6中运行.
(即使对于非空集,如果您发现在迭代中途已经删除了所有第一组元素,则立即停止是有意义的.)