Hi : python list object like a stl vector, if insert a object in the front or the middle of it, all the object after the insert point need to move backward.
look at this code ( in python 2.4.3) static int ins1(PyListObject *self, int where, PyObject *v) { int i, n = self->ob_size; PyObject **items; if (v == NULL) { PyErr_BadInternalCall(); return -1; } if (n == INT_MAX) { PyErr_SetString(PyExc_OverflowError, "cannot add more objects to list"); return -1; } if (list_resize(self, n+1) == -1) return -1; if (where < 0) { where += n; if (where < 0) where = 0; } if (where > n) where = n; items = self->ob_item; for (i = n; --i >= where; ) /// here, why not use memmove? it would be more speed then this loop. items[i+1] = items[i]; Py_INCREF(v); items[where] = v; return 0; } Kyo. -- http://mail.python.org/mailman/listinfo/python-list