[Python-ideas] Add single() to itertools

Guido van Rossum guido at python.org
Mon Oct 30 10:32:33 EDT 2017


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?

On Mon, Oct 30, 2017 at 2:49 AM, Ivan Pozdeev via Python-ideas <
python-ideas at python.org> wrote:

>
>
> On 30.10.2017 9:29, python-ideas-request at python.org wrote:
>
>> If I have understood your use-case, you have a function that returns a
>> list of results (or possibly an iterator, or a tuple, or some other
>> sequence):
>>
>>      print(search(haystack, needle))
>>      # prints ['bronze needle', 'gold needle', 'silver needle']
>>
>> There are times you expect there to be a single result, and if there are
>> multiple results, that is considered an error. Am I correct so far?
>>
> Correct.
>
>> If so, then sequence unpacking is your friend:
>>
>>      result, = search(haystack, needle)
>>
>> <...>
>>
>> I *think* this will solve your problem.
>>
>> If not, can you please explain what "single()" is supposed to do, why it
>> belongs in itertools, and show an example of how it will work.
>>
> That works. Too arcane in my book though (and others' too according to
> https://stackoverflow.com/a/473337/648265), and the error messages are
> cryptic in this use case.
> It also cannot be a part of an expression, unlike next().
>
> The initial post on the above link summarizes the suggested implementation
> pretty well.
>
> --
> Regards,
> Ivan
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20171030/6c07bfcf/attachment.html>


More information about the Python-ideas mailing list