[Tutor] for loop

Alan Gauld alan.gauld at freenet.co.uk
Tue Apr 19 09:37:08 CEST 2005


> *Ron A*  /Wed Jan  7 18:41:15 EST 2004/
>
> I'm experimenting and would like 'yes' to be printed only if 5 is
not in
> the list, but I want to look in each list. This prints out two
yeses.
> How do I get it to print just one 'yes'?
>
> x = [[1,2,3],[2,4,6],[8,4,5,6],[9,8,7]]
>
> for num in x:
>     if 5 in num:
>         break
>     else:
>         print 'yes'

There are several ways to do this but the two  that I would suggest
are:

for num in x:
    if 5 in num:
       found = True
       break

if found: print 'yes'

Or using list comprehensions(Which you probably haven't discovered
yet)

resp = ['yes' for num in x if 5 in num]
if resp: print resp[0]

HTH

Alan G
Author of the Learn to Program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld



More information about the Tutor mailing list