This request is called "one" in more-itertools:

http://more-itertools.readthedocs.io/en/latest/api.html

It raises ValueError as Steve suggested.

On Monday, October 30, 2017 at 8:34:26 AM UTC-6, Guido van Rossum wrote:
>
> 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...@python.org <javascript:>> wrote:
>
>>
>>
>> On 30.10.2017 9:29, python-ide...@python.org <javascript:> 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...@python.org <javascript:>
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
>
>
> -- 
> --Guido van Rossum (python.org/~guido)
>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to