Section 7.11 Traversing lists with the for
loop
It is possible to perform
list traversal using iteration by item as well as iteration by index.
It almost reads like natural language: For (every) fruit in (the list of) fruits, print (the name of the) fruit.
We can also use the indices to access the items in an iterative fashion.
In this example, each time through the loop, the variable
position
is used as an index into the list, printing the
position
-eth element. Note that we used
len
as the upper bound on the range so that we can iterate correctly no matter how many items are in the list.
Any sequence expression can be used in a
for
loop. For example, the
range
function returns a sequence of integers.
This example prints all the multiples of 3 between 0 and 19.
Since lists are mutable, it is often desirable to traverse a list, modifying each of its elements as you go. The following code squares all the numbers from
1
to
5
using iteration by position.
Take a moment to think about
range(len(numbers))
until you understand how it works. We are interested here in both the
value and its
index within the list, so that we can assign a new value to it.
Checkpoint 7.11.1.
What is printed by the following statements?
alist = [4, 2, 8, 6, 5]
blist = [ ]
for item in alist:
blist.append(item+5)
print(blist)
[4, 2, 8, 6, 5]
- 5 is added to each item before the append is peformed.
[4, 2, 8, 6, 5, 5]
- There are too many items in this list. Only 5 append operations are performed.
[9, 7, 13, 11, 10]
- Yes, the for loop processes each item of the list. 5 is added before it is appended to blist.
Error, you cannot concatenate inside an append.
- 5 is added to each item before the append is performed.
You have attempted
1 of
6 activities on this page.