How to extract the member from single-member set in python?

python, set

Solution

Tuple unpacking works, and verifies the assumption that the `set` contains exactly one element (raising `ValueError` if it has too many or too few elements).

(element,) = myset
# Or equivalently, without requiring trailing comma:
[element] = myset

(By the way, python-dev has explored but rejected the addition of `myset.get()` to return an arbitrary element from a set. Discussion here, Guido van Rossum answers 1 and 2.)

My personal favorite for getting an arbitrary element is (when you have an unknown number, but also works if you have just one):

element = next(iter(myset)) ¹

1: in Python 2.5 and before, you have to use `iter(myset).next()`

Problem

I recently encountered a scenario in which if a set only contained a single element, I wanted to do something with that element. To get the element, I settled on this approach: ``` element = list(myset)[0] ``` But this isn't very satisfying, as it creates an unnecessary list. It could also be done with iteration, but iteration seems unnatural as well, since there is only a single element. Am I missing something simple?

Original source

Related problems