# Iterating over Iterables
Here is the first simple list that you learned about earlier.
things_to_buy = [ 'apples','oranges','bread','milk']
This variable, things_to_buy
is interesting, because it is a list of
strings, but the strings are also a list, a list of letters. And in Python,
lists and strings are a lot a like. So, let's learn more about them both.
Both lists and strings are "iterables". Iteration means taking things one at a time, and "iterating" a list means that we will get the first thing in the list, then the second, and on, until there is nothing left in the list. We have seen iteration before, with loops. Here are two loops, one iterating over a list, and another iterating over a string.
# Iterables
The for loop, which looks like for <variable> in <iterable>
works by taking each one of the
things in the iterable, assigning it to the variable, then running the code in the body
of the loop.
But, then you wonder, what does the code we first used for loops do? The one with range()
in it?
Well, range()
is an iterable!. But it isn't a string or a list. It doesn't have anything in it.
It just gives you the next number. But, we can turn it into a list that does have things in it. Here is
how:
TIP
The reason that range() is not a list is that if you had a big range, like range(1_000_000_000), Python would have to store a billion numbers, and would run out of memory. But range() doesn't actually store all of those numebrs, it just counts up by 1, so it doesn't take a lot of memory )
Then you put something inside list()
, list will try to iterate the thing, and then take each
item and put it into a list. A string, like 'Hello World' is not a list, but we can turn it into
a list.
You can turn a string into a list. The first way breaks the list into letters ( which programmers call "characters". The second way breaks the list at a specific character.
# Sorting
Wait, those letters are out of order. Let's put them back in order. There are two ways:
# Adding To Lists
You can add items to lists with .append()
, and concatenate lists ( put them
together) with +
:
# Show Us Your Lists!
Now, you can write a program. Here is what your program should do.
- Start with a string that has friend names, with spaces between the friend names, like
this, but with real names:
'foo bar baz'
. Split the list into a string. - Ask the user for new friend names three times, and add those names to the list
- Sort the list
- Print out each name on a seperate line.