>>> But the dict.pop method is about 12 times faster. Is this >>> worth doing? >> >> The 2.4 builtin set's discard function looks like it does >> roughly the same as the 2.3 sets.Set. Have you tried comparing >> a C version of your version with the 2.4 set to see if there are >> speedups there, too? > > Ah. I had forgotten it was builtin - I'd found the python > implementation and concluded the C implementation didn't make > it into 2.4 for some reason... 8-) > > Yes, the builtin set.discard() method is already faster than > dict.pop().
The C implementation has this code: """ if (PyDict_DelItem(so->data, item) == -1) { if (!PyErr_ExceptionMatches(PyExc_KeyError)) return NULL; PyErr_Clear(); } """ Which is more-or-less the same as the sets.Set version, right? What I was wondering was whether changing that C to a C version of your dict.pop() version would also result in speedups. Are Exceptions really that slow, even at the C level? =Tony.Meyer _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com