On 31.10.2017 8:37, python-ideas-requ...@python.org wrote:
On Tue, Oct 31, 2017 at 3:50 PM, Ivan Pozdeev via Python-ideas <python-ideas@python.org> wrote:
On 30.10.2017 17:32, 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-ideas@python.org  <mailto:python-ideas@python.org>> wrote:

     The initial post on the above link summarizes the suggested
     implementation pretty well.

|defsingle(i): try: ||v =i.next()
|||exceptStopIteration:||||raiseException('No values')|||try: ||i.next()
||exceptStopIteration: ||returnv||else: ||raiseException('Too many values')|
||printsingle(name forname in('bob','fred')ifname=='bob')||| |

||
raise WhitespaceDamagedException from None

ChrisA

Thunderbird jerked on me big time. It never did anything like this before! Switched off Digest mode, individual messages aren't so complicated.

def single(i):
    try:
        v =i.next()
    except StopIteration:
        raise ValueError('No items')
    try:
        i.next()
    except StopIteration:
        return v
    else:
        raise ValueError('More than one item')

print single(name for name in('bob','fred') if name=='bob')

--

Regards,
Ivan

_______________________________________________
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