# Lists: Constructing Lists
([home](https://github.com/alexhkurz/introduction-to-programming/blob/master/README.md) ... [previous](https://hackmd.io/@alexhkurz/Sy7AHDNn8) ... [next](https://hackmd.io/@alexhkurz/ByiUweLfD) ... )
In the previous lecture we saw how to implement in Python programs such as
length
add
mulitply
average
by iteration over a given list.
**Question:** Which of the four programs makes sense for any list? Which other three programs require that we know that the elements of the list are numbers?
**Question:** Which other programs on lists can you think of that make sense independently of the type of the elements?
Here is an example: Reversing a list.
The task is, for a given list `[a_0, ... a_n]`, to construct a new list `[a_n, ... a_0]`.
**Activity:** Write a Python function that reverses a list.
- We start with a given list, which I call the old list.
- To construct a new list, we can start with the empty list `[]`.
- Then we add elements to the new list, step by step, iterating over the old list using a `for`-loop.
- To make lists bigger, we can use concatenation. For example
``[1,2,3] + [4,5]`` returns `[1,2,3,4,5]`
Is that enough to get you going?