DamMercul
А нафиг тогда лямбды вообще нужны, если их использовать не по госту?
lambda - это анонимная функция
>>> def f(): pass
...
>>> f
<function f at 0x7fb740808730>
>>>
>>> g = lambda: None
>>> g
<function <lambda> at 0x7fb74c258ea0>
>>>
Отладчики будут считать её функцией без имени.
Вообще, оператор lambda для того и сделан, чтобы можно было создавать выражения, включающие в себя функции целиком. В питоне lambda-функции сделаны однострочными даже, хотя это не ограничение самих функций, которые есть в теории. В других языках можно делать многострочные лямбды, но из-за этого они делают код нечитаемым.
Поэтому, если тебе надо что-то сложнее простой передачи функции как части выражения, то сделай полноценную функцию. Тем более что в питоне ты можешь создавать (определять) функции внутри функций.
DamMercul
Мне надо 2 пробела сделать? Зачееееем? Что курили когда предложение по PEP 8 принимали?
Помни, что ты не один. Есть читатель, который читает твой код и который тебя вообще не знает и не узнает никогда. То есть твой код есть, а тебя нет. Вот из этого и надо исходить. Дальше берём читателя и смотрим, чем он читает код. Хорошо, если это редактор с подсветкой, а если без подсветки?
Где заканчивается эта строка?
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
Где заканчивается эта строка?
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
[i ** 2 + i ** 3 for i in range(10) for _ in range(15)] # range(3), range(5), [1, 2, 3]
Второй вариант легче читать, потому что комментарии можно отбросить боковым зрением.
Вот когда ты почитаешь много кодов (а это обычное дело для программиста - читать много чужого кода), вот тогда ты и поймёшь, нафиг это надо.