Что такое списки и зачем они нужны

Список  это способ в одной переменной хранить много значений.

Вы уже видели обычные переменные, содержащие одно значение. Однако другие типы переменных могут содержать более одного значения. Самый простой из них – список. В примере список используется для хранения названий месяцев. Программа ожидает от пользователя ввода номера месяца и возвращает название месяца, соответствующее введенному значению:

which_one = input("What month (1-12)? ")
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',   'August', 'September', 'October',    'November', 'December']
if 1 <= which_one <= 12:
        print "The month is",months[which_one - 1]

Пример результата:

What month (1-12)? 3The month is March

В этом примере months – это список. Переменная months определяется командой months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',\ 'August', 'September', 'October', 'November', 'December']. Запятая разделяет элементы списка. Список состоит из элементов, которые пронумерованы начиная с 0. Другими словами, если вы хотите January, вы напишете months[0]. По номеру список выдает величину, находящуюся в этом месте.

Список используется в выражении  months[which_one - 1].

Выражение if 1 <= which_one <= 12: будет истинно только в том случае, если which_one находится в интервале от одного до двенадцати (это просто математическое условие, как  в алгебре).

Можно представить список как набор контейнеров, например список demolist = ['life',42, 'the universe', 6,'and',7]  можно отобразить следующим образом:

номер контейнера

0

1

2

3

4

5

demolist

`life'

42

`the universe'

6

`and'

7

Каждый контейнер помечен своим номером, поэтому demolist[0] дает ‘life’, demolist[1] дает 42, и т.д. до demolist[5], то есть 7.