回答編集履歴

1 誤記

KSwordOfHaste

KSwordOfHaste score 17408

2018/04/25 18:09  投稿

lambdaはその本体に文は書けず**単一の式**しか書けません。それが意味するのは何かの値を計算する目的で使うものということです。ですから値の計算ではなく何かの処理(本件では出力)の目的で使うのは不自然に思えることが多いと思います。
もしどうしてもlambda式を使って書くとしたらどうすればいいでしょう。LouiS0616さんご指摘の通り可変長位置引数として書いてみると
```python
def prog(something): pass
(lambda *args: prog([print(arg) for arg in args]))(1, 2)
# or
(lambda *args: (lambda something: None)(
                  [print(arg) for arg in args]
              ))(1, 2)
```
ちなみにlambda式をそのまんま変数に束縛(代入)するならdefで関数定義しないことの意味がますますない気がします。
結局のところ**正しい書き方はlambdaを使わないこと**のように思えます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る