The Yield statement
Mark Tolonen
M8R-yfto6h at mailinator.com
Sun Jul 6 03:29:26 EDT 2008
"inhahe" <inhahe at gmail.com> wrote in message
news:z6_bk.24960$AJ6.1423 at bignews8.bellsouth.net...
>
> "Alex Bryan" <alexnbryan at gmail.com> wrote in message
> news:mailman.1009.1214865088.1044.python-list at python.org...
>> Okay, so i don't really understand the Yield thing and i know it is
>> useful. I've read a few things about it but it is all programming jargon
>> and so basically it is hard for me to understand. So can anyone give me
>> a description or link me to a site that has a good definition and/or
>> examples of it? If you could I would really appreciate it.
>
> Really short answer:
>
> def f():
> yield 1
> yield 2
> yield 3
>
> for x in f(): print x,
> # should print 1 2 3
>
> def f():
> for x in xrange(10):
> yield x
>
> for x in f(): print x,
> # should print 0 1 2 3 4 5 6 7 8 9
>
> note that this won't work;
> def f():
> for x in xrange(10):
> for y in xrange(10):
> yield (x,y)
>
> yield just doesn't work right with multiple levels of loops. i had to
> discover that the hard way.
Huh? Works fine:
>>> def f():
... for x in xrange(10):
... for y in xrange(10):
... yield (x,y)
...
>>> for x in f(): print x,
...
(0, 0) (0, 1) (0, 2) (0, 3) (0, 4) (0, 5) (0, 6) (0, 7) (0, 8) (0, 9) (1, 0)
(1,
1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (1, 8) (1, 9) (2, 0) (2, 1)
(2, 2)
(2, 3) (2, 4) (2, 5) (2, 6) (2, 7) (2, 8) (2, 9) (3, 0) (3, 1) (3, 2) (3,
3) (3
, 4) (3, 5) (3, 6) (3, 7) (3, 8) (3, 9) (4, 0) (4, 1) (4, 2) (4, 3) (4, 4)
(4, 5
) (4, 6) (4, 7) (4, 8) (4, 9) (5, 0) (5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5,
6) (
5, 7) (5, 8) (5, 9) (6, 0) (6, 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) (6, 7)
(6,
8) (6, 9) (7, 0) (7, 1) (7, 2) (7, 3) (7, 4) (7, 5) (7, 6) (7, 7) (7, 8) (7,
9)
(8, 0) (8, 1) (8, 2) (8, 3) (8, 4) (8, 5) (8, 6) (8, 7) (8, 8) (8, 9) (9, 0)
(9,
1) (9, 2) (9, 3) (9, 4) (9, 5) (9, 6) (9, 7) (9, 8) (9, 9)
-Mark
More information about the Python-list
mailing list