Optimize reversed(list) using a custom iterator.

This commit is contained in:
Raymond Hettinger 2003-11-07 15:38:09 +00:00
parent ff1f194982
commit 1021c44b41
2 changed files with 98 additions and 4 deletions

View file

@ -174,8 +174,8 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq))
return NULL;
/* Special case optimization for xrange */
if (PyRange_Check(seq))
/* Special case optimization for xrange and lists */
if (PyRange_Check(seq) || PyList_Check(seq))
return PyObject_CallMethod(seq, "__reversed__", NULL);
if (!PySequence_Check(seq)) {