Order.. matters.. And in Python, lists make
it easy to work with ordered data. Lists are a built-in data structure for storing and
accessing objects which belong in a specific sequence. We will now learn how to create
and use lists, and we will do so in a linear and orderly fashion… There are two ways to create a list. One way is to use the list constructor. But a simpler
and more common way is to use brackets. When creating a list, you can also pre-populate
it with values. For example, let’s create a list with the first few prime numbers. You can always add values later by using the
“append” method which allows you to add new values to the end of the list. Let’s
append the next two prime numbers: 17… and 19… If you display the list, you will see it contains
the new values. Notice how lists preserve the order of the data – this is different
from sets. In sets, the order is not important. In lists, order is everything.
You do not have to view the entire list. If you want to see a specific value, you can
access it by its index. In computer science, you start counting with 0, not 1. So the elements
in our list “primes” are indexed 0.. 1.. 2.. 3.. 4.. 5.. 6.. and 7..
To view the first item, you type the name of the list, and the index in brackets. The
first item is 2. The second item has index 1, and the second
item is 3. And so on… Notice how the indices increase by one as
you go from left to right. And they decrease by one when you go from
right to left. When you get to the beginning, the index is
0. If you decrease the index once more, you get -1. Here, Python wraps back around to
the end of the list. So the last item is -1, the next to last is -2, and so on.
This is convenient when you want to look at the values at the end of a list. The last
item is 19… The next to last prime is 17… And we reach the beginning of the list with
index -8. Be careful – you can only wrap around once.
If you try to find the value of index -9, you get an index error. Another way to access values in a list is by slicing. This lets you retrieve a range
of values from your list. We will continue to use our list of primes. To slice this list, type the name of the list,
bracket, a starting index, a colon, a stopping index, then a closing bracket… The result
is a sublist that starts at index 2, and continues until it reaches index 5. Be careful. Slicing
includes the value at the starting index, but excludes the stopping index. The beginning
value is included; the ending value is not. One more slice… This will start at the beginning,
which is index 0, and continue to index 6, which is 17. It will not include the final
number, so this slice includes the primes from 2 through 13. Lists can contain more than prime numbers. They can contain integers…booleans… strings…
floats… and even other lists. Many languages require lists to contain values
of the same type, but not Python. With Python, you are free to insert multiple data types
in the same list. Lists can also contain duplicate values. Here
is another way lists are different from sets. For example, suppose you want to record the
numbers you roll on a pair of dice. Pretend you roll a 4.. 7.. 2.. 7.. 12.. 4 and 7..
If you look at the list, all the values are there, even the repeated rolls. You can also combine lists. To see how, create two separate lists:
A list of numbers… And a list of letters…
To combine these two lists into a single list, use the plus sign.
Numbers + letters equals 1, 2, 3 .. a, b, c… But order matters. If you reverse this and compute letters + numbers
you get a, b, c.. 1, 2, 3.. Combining lists is called “concatenation”. Observe. The list of numbers.. and the list of letters are unchanged. There are many other methods for working with lists. To see them all, pass any list to the
directory function. To learn how to use one of these methods,
use the help function. For example, there is a method for reversing a list. The help
text gives full details on what it does and how to use it. Lists start at 0 and end… … they end precisely when you are finished. You can slice them…
You can concatenate them… You can reverse them… You can even clear them… If I were
to make a list of all the uses of lists, I would have a very, VERY long list…