Модуль 20. Задача 1. Ревью кода

Ваня работает middle — разработчиком на Python в IT-компании и один кандидат на junior-разработчика прислал ему код тестового задания. Задание состояло в следующем: есть словарь из трёх студентов. Необходимо:
Вывести на экран список пар “айди студента — возраст”
Написать функцию, которая принимает в качестве аргумента словарь и возвращает два значения: полный список интересов всех студентов, а также общую длину всех фамилий студентов
Далее в основном коде эта функция вызывается, и все возвращаемые значения «распаковываются» в отдельные переменные, которые затем выводятся на экран.

Ваня — очень придирчивый программист и после просмотра кода он понял, что этого кандидата он на работу не возьмёт, даже несмотря на то, что она выдаёт верный результат. Сам код кандидата: (см. main.py)

Перепишите данный код так, чтобы он был максимально pythonic и Ваня мало к чему мог придраться (ну только если очень захочется). Убедитесь в том, что программа работает всё также верно. Различные проверки на существования записей в словаре не обязательны, но приветствуются. 🙂

Что прислал кандидат:

def f(dict):
    lst = []
    string = ''
    for i in dict:
        lst += (dict[i]['interests'])
        string += dict[i]['surname']
    cnt = 0
    for s in string:
        cnt += 1
    return lst, cnt

pairs = []
for i in students:
    pairs += (i, students[i]['age'])

my_lst = f(students)[0]
l = f(students)[1]
print(my_lst, l)

Результат работы программы:

Список пар "ID студента - Возраст": [(1, 23), (2, 24), (3, 22)]
Полный список интересов всех студентов: {'running', 'computer games', 'math', 'languages', 'biology, swimming', 'health food'}
Общая длина всех фамилий студентов: 20

Решение:

Решение можно скачать с Boosty.to.


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
5340login-checkМодуль 20. Задача 1. Ревью кода

Добавить комментарий