[Tutor] for vs while
Alan Gauld
alan.gauld at btinternet.com
Sat Sep 29 09:53:20 CEST 2007
"James" <jtp at nc.rr.com> wrote
> I have a dumb question...hopefully someone can shed some light on
> the
> difference between for and while in the situation below.
You got the basic answer but I'll just add a comment.
while is your basic type loop, same as in C and most other languages.
for is really a *foreach* loop. It iterates over
collections/sequences.
It is not an indexing loop and if you find yourself doing
for n in range(len(collection)):
foo(collection[n])
You should consider whether there is a better way.
Normally
for item in collection:
foo(item)
If you really need the index as well as the item then
use enumerate():
for n,item in enumerate(collection):
print item, 'at index', n
> I'm trying to iterate through a list I've created. The list
> consists
> of a command, followed by a 'logging' message (a message printed to
> a
> console or log file after the command is run).
The easiest way to do this is to put both command and message
in a tuple and have a list of tuples:
> stuff = [ ["cat /etc/password"] , ["viewed /etc/password"] ]
stuff = [ ("cat /etc/password" , "viewed /etc/password") ]
for com in stuff:
os.system(com[0])
print com[1]
Get the data structure right and the code will follow.
HTH,
Alan G
Just back from vacation in Switzerland :-)
More information about the Tutor
mailing list