Списки

  1. Создайте функцию, которая получает на вход число n и возвращает список из четных чисел от $2$ до $2n$. тест
  2. Создайте функцию list_of_empty_lists(n), которая возвращает список из пустых списков длины n. Убедитесь, что все пустые списки внутри разные. тест
  3. Создайте функцию, которая получает на вход список и меняет местами первый и последний элемент. Эта функция должна возвращать новый список, не меняя исходный. тест
    • Решите эту же задачу, но функция не должна ничего возвращать, зато должна изменять переданный список. тест
  4. Коды Грея, часть 1. Создайте функцию, в которую передается один аргумент, целое число \(n\ge0\). Если передан 0, нужно вернуть список [0]. Иначе нужно повторить \(n\) раз следующую операцию: приписать список из предыдущего шага к самому себе, вставив в середине число с номером шага. На примере это выглядит так:
     n = 0     [0]
     n = 1     [0 1 0]
     n = 2     [0 1 0 2 0 1 0]
     n = 3     [0 1 0 2 0 1 0 3 0 1 0 2 0 1 0]
     ...
    

    тест

  5. Коды Грея, часть 2. Создайте функцию, в которую передается один аргумент, целое число \(n\ge0\). Нужно вызвать функцию из прошлой задачи с аргументом \(n - 1\) и запомнить полученный список в переменную positions. Дальше вы создаете список gray из \(n\) нулей и начинаете перебирать элементы positions. Каждый элемент positions говорит, по какому индексу в списке gray нужно заменять 0 на 1 или 1 на 0. Все полученные списки gray нужно собрать в один большой список и вернуть его. Например, при \(n = 3\) должен получиться результат:
    [
     [0, 0, 0],
     [1, 0, 0],
     [1, 1, 0],
     [0, 1, 0],
     [0, 1, 1],
     [1, 1, 1],
     [1, 0, 1],
     [0, 0, 1]
    ]    
    

    тест