What if you had a list of integer values, and you need to add them up and give the sum? Here are a number of different types of doing it.
First, here is a type in a style you may have learned to write in a Java class (actually, you would have used for, but Python does not have a for that works like the one in C and Java).
def addList1(l):
sum = 0
listLength = len(l)
i = 0
while (i < listLength):
sum = sum + l[i]
i = i + 1 return sum
It increments the index i from 0 through the length of the list - 1, and includes the appropriate components of the list into the sum. This is perfectly right, but pretty verbose and easy to get wrong.
Here is a method of version using Python's for loop.
def addList2(l):
sum = 0
for i in range(len(l)):
sum = sum + l[i]
return sum
A loop of the form
for x in l: something will be executed once for each element in the structure l, with the variable x having each successive element in l on each iteration. So,for x in range(3): print x will print 0 1 2. Back to addList2, we look that i will take on variables from 0 to the length of the list minus 1, and on every iteration, it will include the appropriate component from l into the addition. This is more compact and simpler to get right than the ?rst method of version, but still not the good one we can do!
This one is even more direct.
def addList3(l):
sum = 0
for v in l:
sum = sum + v return sum
We do not ever really need to work with the indices. Here, the internal variable v gets on each successive integer in l, and those values are goes into sum.
For the truly lazy, it turns out that the function we need is already built into Python. It is known as sum:
def addList4(l):
return sum(l)