Как написать лямбда функцию, генерирующую словарь?
Привет!
Мне необходимо написать лямбда-функцию, которая бы сгенерировала словарь, выглядящий вот таким образом: {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". Если кто-нибудь столкнулся с необходимостью их изучить, очень рекомендую этот учебник.
Огромное спасибо!
gen_dict = (lambda x=10: dict([(y, y*y) for y in range(x)])) генерит ровно то, что мне нужно! :)
А не подскажете, где можно нормальный учебный материал по лямбдам раздобыть?
Metalofon NT написал правильно
но вопрос простой как двери - а зачем эти лямбда функции ?
они упрощают написание кода (вбить 10 символов вместо 30) но затрудняют понимание и новый человек, когда разбирается что тут собственно происходит, ему очень трудно в это вникнуть. так что, если Вам не идут лямбды - пишите обычные, и ничего в Вашей жизни не будет затрудненно :)