Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r45193:4a333a111dac
Date: 2011-06-30 00:59 -0700
http://bitbucket.org/pypy/pypy/changeset/4a333a111dac/
Log: Significantly optimize set.pop
diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -466,12 +466,11 @@
return space.wrap(hash)
def set_pop__Set(space, w_left):
- for w_key in w_left.setdata:
- break
- else:
+ try:
+ w_key, _ = w_left.setdata.popitem()
+ except KeyError:
raise OperationError(space.w_KeyError,
space.wrap('pop from an empty set'))
- del w_left.setdata[w_key]
return w_key
def and__Set_Set(space, w_left, w_other):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit