Changes by Raymond Hettinger rhettin...@users.sourceforge.net:
--
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
___
___
ipatrol ipatrol6...@yahoo.com added the comment:
I still see a use in this. I like to use sets for lists of servers or mirrors.
There is no compelling reason *not* to add a get() or pick() method, as
described in http://en.wikipedia.org/wiki/Set_%28computer_science%29. Sets
could be used for
ipatrol ipatrol6...@yahoo.com added the comment:
I support http://bugs.python.org/msg94599 with a check to see if the length is
0, and rename it pick (based on the generic programming and mathematical
literature).
--
___
Python tracker
Raymond Hettinger rhettin...@users.sourceforge.net added the comment:
Use set.pop().
Or if you don't want mutation, then use next(iter(s)) or next(iter(s),default).
This technique also works for any collection including dicts and deques and
whatnot.
--
Alexander Belopolsky belopol...@users.sourceforge.net added the comment:
I don't want to pollute python-dev with more hopeless ideas, but I wonder
if itertools could grow an efficient C-implemented
def first(collection):
return next(iter(collection))
On the other hand, it probably belongs
Raymond Hettinger rhettin...@users.sourceforge.net added the comment:
After a long discussion on python-dev, this proposal is rejected in
favor of adding documentation notes on the ways to non-destructively
retrieve an arbitrary item from a set or frozenset.
Here is an except from the end of
Willi Richert w.rich...@gmx.net added the comment:
No particular reason, besides that it is ripped off of pop().
Your solution (omitting register) gives the same performance. Looks
cleaner, of course.
The patch tries to provide a clean way of for x in some_set: break, as
explained above. See
Changes by Willi Richert w.rich...@gmx.net:
Removed file: http://bugs.python.org/file15207/setobject_get.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
___
Changes by Willi Richert w.rich...@gmx.net:
Added file: http://bugs.python.org/file15211/setobject_get.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
___
Willi Richert w.rich...@gmx.net added the comment:
added tests for get() to test_set.py
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
___
Alexander Belopolsky belopol...@users.sourceforge.net added the comment:
Any reason you don't want to call set_next from set_get?
I would say
static PyObject *
set_get(PySetObject *so)
{
register Py_ssize_t pos = 0;
register setentry *entry;
if (set_next(so, pos,
New submission from Willi Richert w.rich...@gmx.net:
Sometimes, a non-removing pop() is needed. In current Python versions,
it can achieved by one of the following ways:
1.
x = some_set.pop()
some_set.add(x)
2.
for x in some_set:
break
3.
x = iter(some_set).next()
More native and
Changes by Raymond Hettinger rhettin...@users.sourceforge.net:
--
assignee: - rhettinger
nosy: +rhettinger
versions: +Python 2.7 -Python 3.1
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
Benjamin Peterson benja...@python.org added the comment:
Without tests, this patch is unacceptable.
--
nosy: +benjamin.peterson
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7212
___
14 matches
Mail list logo