<div dir="ltr">This is a key example of a case where code speaks. Can you write an implementation of how you would want single() to work in Python code?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 30, 2017 at 2:49 AM, Ivan Pozdeev via Python-ideas <span dir="ltr"><<a href="mailto:python-ideas@python.org" target="_blank">python-ideas@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 30.10.2017 9:29, <a href="mailto:python-ideas-request@python.org" target="_blank">python-ideas-request@python.or<wbr>g</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If I have understood your use-case, you have a function that returns a<br>
list of results (or possibly an iterator, or a tuple, or some other<br>
sequence):<br>
<br>
     print(search(haystack, needle))<br>
     # prints ['bronze needle', 'gold needle', 'silver needle']<br>
<br>
There are times you expect there to be a single result, and if there are<br>
multiple results, that is considered an error. Am I correct so far?<br>
</blockquote></span>
Correct.<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
If so, then sequence unpacking is your friend:<br>
<br>
     result, = search(haystack, needle)<br>
<br></span>
<...><span class=""><br>
<br>
I *think* this will solve your problem.<br>
<br>
If not, can you please explain what "single()" is supposed to do, why it<br>
belongs in itertools, and show an example of how it will work.<br>
</span></blockquote>
That works. Too arcane in my book though (and others' too according to <a href="https://stackoverflow.com/a/473337/648265" rel="noreferrer" target="_blank">https://stackoverflow.com/a/47<wbr>3337/648265</a>), and the error messages are cryptic in this use case.<br>
It also cannot be a part of an expression, unlike next().<br>
<br>
The initial post on the above link summarizes the suggested implementation pretty well.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Regards,<br>
Ivan</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<wbr>_________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofco<wbr>nduct/</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>