Hi Danie,
The enumerate() function takes a list of elements, and returns a list of
(index, element) pairs. For example:
######
>>> names = ["wilma", "fred", "betty", "barney"]
>>> for p in enumerate(names):
... print p
...
(0, 'wilma')
(1, 'fred')
(2, 'betty')
(3, 'barney')
######
Note that nothing stops us from doing an iteration directly across a list:
there is no need to "enumerate" if we don't care about indices:
######
>>> for n in names:
... print n.capitalize()
...
Wilma
Fred
Betty
Barney
######
Let's look in the code that you have:
> #manipulate object in list
> for p in enumerate(range(10)):
> myObject=p
> print myObject.getName()
This code is buggy because the enumeration is going across an arbitrary
list of the integers between zero and ten. Python has no clue that there
should be a relationship here with the code you had previously with the
'list' collection.
You may want to iterate across the 'list' that you've constructed instead.
######
for object in list:
print object.getName()
######
This has a similar effect to the following Java pseudocode:
/*** Java pseudocode ***/
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
object = (MyObject) iter.next();
System.out.println(object.getName());
}
/******/
except you don't have to worry about the type casting in Python.
I hope this helps!
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor