# How to Think Like a Computer Scientist: The PreTeXt Interactive Edition

## Section10.14List Methods

The dot operator can also be used to access built-in methods of list objects. append is a list method which adds the argument passed to it to the end of the list. Continuing with this example, we show several other list methods. Many of them are easy to understand.
There are two ways to use the pop method. The first, with no parameter, will remove and return the last item of the list. If you provide a parameter for the position, pop will remove and return the item at that position. Either way the list is changed.
The following table provides a summary of the list methods shown above. The column labeled result gives an explanation as to what the return value is as it relates to the new value of the list. The word mutator means that the list is changed by the method but nothing is returned (actually None is returned). A hybrid method is one that not only changes the list but also returns a value as its result. Finally, if the result is simply a return, then the list is unchanged by the method.
Be sure to experiment with these methods to gain a better understanding of what they do.
Details for these and others can be found in the Python Documentation
1
http://docs.python.org/py3k/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range
.
It is important to remember that methods like append, sort, and reverse all return None. This means that re-assigning mylist to the result of sorting mylist will result in losing the entire list. Calls like these will likely never appear as part of an assignment statement (see line 8 below).

### Checkpoint10.14.2.

What is printed by the following statements?
alist = [4, 2, 8, 6, 5]
alist.append(True)
alist.append(False)
print(alist)

• [4, 2, 8, 6, 5, False, True]
• [4, 2, 8, 6, 5, True, False]
• Yes, each item is added to the end of the list.
• [True, False, 4, 2, 8, 6, 5]
• append adds at the end, not the beginning.

### Checkpoint10.14.3.

What is printed by the following statements?
alist = [4, 2, 8, 6, 5]
alist.insert(2, True)
alist.insert(0, False)
print(alist)

• [False, 4, 2, True, 8, 6, 5]
• Yes, first True was added at index 2, then False was added at index 0.
• [4, False, True, 2, 8, 6, 5]
• insert will place items at the index position specified and move everything down to the right.
• [False, 2, True, 6, 5]
• insert does not remove anything or replace anything.

### Checkpoint10.14.4.

What is printed by the following statements?
alist = [4, 2, 8, 6, 5]
temp = alist.pop(2)
temp = alist.pop()
print(alist)

• [4, 8, 6]
• pop(2) removes the item at index 2, not the 2 itself.
• [2, 6, 5]
• pop() removes the last item, not the first.
• [4, 2, 6]
• Yes, first the 8 was removed, then the last item, which was 5.

### Checkpoint10.14.5.

What is printed by the following statements?
alist = [4, 2, 8, 6, 5]
alist = alist.pop(0)
print(alist)

• [2, 8, 6, 5]
• alist is now the value that was returned from pop(0).
• [4, 2, 8, 6, 5]
• pop(0) changes the list by removing the first item.
• 4
• Yes, first the 4 was removed from the list, then returned and assigned to alist. The list is lost.
• None
• pop(0) returns the first item in the list so alist has now been changed.

### Note10.14.6.

This workspace is provided for your convenience. You can use this activecode window to try out anything you like.