HiveBrain v1.2.0
Get Started
← Back to all entries
snippetpythonCritical

How to retrieve an element from a set without removing it?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
howsetwithoutelementretrieveremovingfrom

Problem

Suppose the following:

>>> s = set([1, 2, 3])


How do I get a value (any value) out of s without doing s.pop()? I want to leave the item in the set until I am sure I can remove it - something I can only be sure of after an asynchronous call to another host.

Quick and dirty:

>>> elem = s.pop()
>>> s.add(elem)


But do you know of a better way? Ideally in constant time.

Solution

Two options that don't require copying the whole set:

for e in s:
    break
# e is now an element from s


Or...

e = next(iter(s))


But in general, sets don't support indexing or slicing.

Code Snippets

for e in s:
    break
# e is now an element from s
e = next(iter(s))

Context

Stack Overflow Q#59825, score: 900

Revisions (0)

No revisions yet.