Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #16844

Re: Misleading error message of the day

References <roy-9DEDD9.09233308122011@news.panix.com> <jbqil6$esn$1@dough.gmane.org> <mailman.3417.1323357938.27778.python-list@python.org> <18647617.2258.1323358966076.JavaMail.geo-discussion-forums@yqf20> <4EE0DDE4.4080802@gmail.com>
Date 2011-12-09 03:21 +1100
Subject Re: Misleading error message of the day
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.3426.1323361294.27778.python-list@python.org> (permalink)

Show all headers | View raw


On Fri, Dec 9, 2011 at 2:55 AM, Andrea Crotti <andrea.crotti.0@gmail.com> wrote:
> Yes but how do you know how many values you generated when it quits?
> I mean I don't know how it work internally, but it should keep a temporary
> list of the yielded values to be able to find out how many values are
> there..

Iterator unpacking works roughly thus:

1) Count up how many results you need (call that N)
2) N times, get a value from the iterator. If StopIteration is raised,
swallow it and raise ValueError because there were too few values.
3) Attempt to get one more value from the iterator. If StopIteration
is NOT raised, raise ValueError because there were too many values.

At no point is the "total size" of the iterator counted (it could,
after all, be infinite). When ValueError is raised, all that's known
is that StopIteration wasn't raised at the end of the process.

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 09:23 -0500
  Re: Misleading error message of the day Andrea Crotti <andrea.crotti.0@gmail.com> - 2011-12-08 14:39 +0000
  Re: Misleading error message of the day Chris Angelico <rosuav@gmail.com> - 2011-12-09 01:40 +1100
  Re: Misleading error message of the day Robert Kern <robert.kern@gmail.com> - 2011-12-08 14:47 +0000
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:30 -0800
      Re: Misleading error message of the day Tim Chase <python.list@tim.thechases.com> - 2011-12-08 11:41 -0600
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:30 -0800
  Re: Misleading error message of the day Jean-Michel Pichavant <jeanmichel@sequans.com> - 2011-12-08 16:03 +0100
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:33 -0800
      Re: Misleading error message of the day Jean-Michel Pichavant <jeanmichel@sequans.com> - 2011-12-08 20:49 +0100
      Re: Misleading error message of the day Ethan Furman <ethan@stoneleaf.us> - 2011-12-08 12:13 -0800
      Re: Misleading error message of the day Lie Ryan <lie.1296@gmail.com> - 2011-12-09 12:46 +1100
        Re: Misleading error message of the day alex23 <wuwei23@gmail.com> - 2011-12-08 20:57 -0800
          Re: Misleading error message of the day Lie Ryan <lie.1296@gmail.com> - 2011-12-11 10:41 +1100
      Re: Misleading error message of the day Jean-Michel Pichavant <jeanmichel@sequans.com> - 2011-12-09 11:03 +0100
        Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-09 09:43 -0500
      Re: Misleading error message of the day Ethan Furman <ethan@stoneleaf.us> - 2011-12-09 09:39 -0800
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:33 -0800
      Re: Misleading error message of the day Grant Edwards <invalid@invalid.invalid> - 2011-12-08 18:10 +0000
        Re: Misleading error message of the day alister <alister.ware@ntlworld.com> - 2011-12-08 20:58 +0000
          Re: Misleading error message of the day Chris Angelico <rosuav@gmail.com> - 2011-12-09 08:17 +1100
        Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 20:19 -0500
        Re: Misleading error message of the day Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-12-09 02:07 +0000
          Re: Misleading error message of the day Chris Angelico <rosuav@gmail.com> - 2011-12-09 14:46 +1100
            Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 23:44 -0500
  Re: Misleading error message of the day Heiko Wundram <modelnine@modelnine.org> - 2011-12-08 16:16 +0100
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:42 -0800
      Re: Misleading error message of the day Heiko Wundram <modelnine@modelnine.org> - 2011-12-08 16:50 +0100
        Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 10:42 -0800
          Re: Misleading error message of the day Benjamin Kaplan <benjamin.kaplan@case.edu> - 2011-12-08 13:57 -0500
          Re: Misleading error message of the day Ethan Furman <ethan@stoneleaf.us> - 2011-12-08 11:09 -0800
          Re: Misleading error message of the day Benjamin Kaplan <benjamin.kaplan@case.edu> - 2011-12-08 14:38 -0500
          Re: Misleading error message of the day Ethan Furman <ethan@stoneleaf.us> - 2011-12-08 12:09 -0800
        Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 10:42 -0800
      Re: Misleading error message of the day Andrea Crotti <andrea.crotti.0@gmail.com> - 2011-12-08 15:55 +0000
      Re: Misleading error message of the day Chris Angelico <rosuav@gmail.com> - 2011-12-09 03:21 +1100
      Re: Misleading error message of the day Robert Kern <robert.kern@gmail.com> - 2011-12-08 19:57 +0000
    Re: Misleading error message of the day Roy Smith <roy@panix.com> - 2011-12-08 07:42 -0800

csiph-web