@whoareyoutofuckinglecture
Python developer

Как написать лямбда функцию, генерирующую словарь?

Привет!
Мне необходимо написать лямбда-функцию, которая бы сгенерировала словарь, выглядящий вот таким образом: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

Я совершенно не знаком с лямбдами, пытался найти в гугле нормальный мануал по ним, но везде натыкался или на перепечатку одной и той же статьи, которая не даёт нужной инфы, либо на короткие заметки, что такое лямбды и когда их использовать.
Помогите, пожалуйста.
А так же буду благодарен за наводку на хорошую статью, где понятно объяснят новичку, как пользоваться лямбдами в Питоне

Спасибо!

UPD.: Писал вот так {lambda x: '{}:{}'.format(x, x * x), range(82)} (0), но IDE ругается. А как правильно написать я не знаю..

UPD2.: Lambda-выражения хорошо описаны в книге Марка Лутца "Изучаем Python". Если кто-нибудь столкнулся с необходимостью их изучить, очень рекомендую этот учебник.
  • Вопрос задан
  • 962 просмотра
Решения вопроса 1
Держи.
gen_dict = (lambda x=82: dict([(y, y*y) for y in range(x)]))

print(gen_dict())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Metalofon NT написал правильно
но вопрос простой как двери - а зачем эти лямбда функции ?
они упрощают написание кода (вбить 10 символов вместо 30) но затрудняют понимание и новый человек, когда разбирается что тут собственно происходит, ему очень трудно в это вникнуть. так что, если Вам не идут лямбды - пишите обычные, и ничего в Вашей жизни не будет затрудненно :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы