It iterates through the list, compares every item with the item to be removed and if it finds a match, it just removes that. It works in O(N). Source: https://wiki.python.org/moin/TimeComplexity
It removes only the first matched item and returns immediately.
If the item to be removed is not there, it fails with ValueError
This is the listremove
function which removes the item from a list and it uses PyObject_RichCompareBool
to check if the items are the same. And PyObject_RichCompareBool
is implemented like this
/* Quick result when objects are the same.
Guarantees that identity implies equality. */
if (v == w) {
if (op == Py_EQ)
return 1;
else if (op == Py_NE)
return 0;
}
res = PyObject_RichCompare(v, w, op);
If the identity of the objects are the same (if both the objects are the same), then return 1
otherwise compare the values and return the result.