Ваня работает 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
